-1

我想遍历一个数据框并从数据框中选择一个单独的列,为此我使用以下代码,但它给了我一个错误。有人可以指导我在这段代码中应该更正什么吗?

for (i in 1:3) {
    cur_file <- paste(i,".csv",sep="")
    curfile <- list.files(pattern = cur_file)
    rd_data[i] <- read.csv(curfile, header=F,sep="\t")
    col1 <- rd_data[i,1] # select the first column in the "1st" data frame
    n_val[i] <- rd_data[i,2] # select the second column in the each of "ith" data frame
} 
4

1 回答 1

2

您可以完全不使用 for 循环来执行此操作:

files <- list.files(pattern='*.csv')

dat <- lapply(files, read.csv, header=FALSE, sep='\t') # apply read.csv to each element of files

col_1_list <- lapply(dat, '[', 1) # use the [ function, see  ?"[" for more info.
n_val_list <- lapply(dat, '[', 2) 

另外,你的鳕鱼:

col1 <- rd_data[i,1] # select the first column in the "1st" data frame

将选择每个的第一列,data.frame而不仅仅是第一列。

于 2013-10-09T14:29:38.200 回答