2016-08-16 69 views
1

我有一个字符串像csv文件的内容:'"number 1", "number 2"',我想解析它。textconnection产生额外的空间[R]

我发现textconnection可以将字符串转换为文件句柄。解析使用它。但它在我的内容中产生了一些神秘的空间。任何一个konw为什么以及如何解决?谢谢

con = textConnection('"number 1", "number 2"') 
dat = read.csv(con, header = F, stringsAsFactors = F) 
close(con) 

dat 
#   V1  V2 
# 1 number 1 number 2 

dat[1,1] 
# [1] "number 1" 

dat[1,2] 
# [1] " number 2" --- why there's a space??? 
+0

这是正常的,因为逗号之后(分隔符是逗号)之间有空格。您可以使用'gsub(“^ +”,“”,dat $ V2) ' – agstudy

回答

1

该空间已经存在,所以它不是一个谜。由于read.csv()解析文件的方式,逗号和引号之间的空格被留下。您可以在致电read.csv()时使用strip.white = TRUE来解决此问题。

con = textConnection('"number 1", "number 2"') 
dat = read.csv(con, header = F, stringsAsFactors = F, strip.white = TRUE) 
dat[1,2] 
# [1] "number 2" 

顺便说一句,你不需要在read.csv()使用textConnection()。如果你有一个字符串,你可以使用read.csv()的参数read.csv()来传递它。

+0

美丽的解决方案将其删除。非常感谢你! @脏袜子嗅探器。澄清:strip.white = T不会删除引号内的空格 –