2016-08-16 58 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不會刪除引號內的空格 –