2016-10-30 95 views
-1

我想爲我的另一個問題的數據集做一個最小的例子。 目前,我有過於複雜,容易出錯的有文件名列表,並追加他們爲全名如何在R中創建循環的字符串列表?

data = read.csv("/home/masi/dataList.csv",header = FALSE,sep = ",") 
i = 1 
for (d in data) { 
     data[i] = paste("/home/masi/Documents/CSV/", d, sep="") 
     i = i + 1 
} 

dataList.csv

P103C1.csv 
P103C2.csv 
P111C1.csv 

僞代碼在列的東西第一以下並轉置,但你仍然無法循環它作爲for (d in data) {...};和附加再次

data = t(c("P103C1.csv" "P103C2.csv" "P111C1.csv")) 

i = 1 
for (d in data) { 
     data[i] = paste("/home/masi/Documents/CSV/", d, sep="") 
     i = i + 1 
} 

事實上,我認爲有轉置沒有一個好主意,一個更好,更簡單的方法應該存在。

預計產量:相當於data = read.csv("/home/masi/dataList.csv",header = FALSE,sep = ",")的東西。

OS:Debian的8.5
R:3.1.1

+0

你的問題根本不清楚。 –

+0

@ChirayuChamoli我添加了一個預期的輸出。你能指定什麼不清楚嗎? –

+0

@ZheyuanLi謝謝!我從評論中刪除它,並將其明確添加爲自己的塊。 –

回答

1

你不需要建立在這種情況下,一個字符串作爲你已經在datalist.csv的所有文件。從datalist.csv創建一個列表,然後饋入一個循環。

listoffiles=list("P103C1.csv","P103C2.csv","P111C1.csv") 
files=list() 

for(i in 1:length(listoffiles)){ 
    files[[i]]=read.csv(listoffiles[[i]], header = F, sep = ',') 
    } 
+0

完美!只有分隔符必須是空的'sep =「」'才能工作。 –

+0

我把這個sep看在第一個'read.csv'行。我的錯。 –