我想循环一个数据框并从数据框中选择一个单独的列,为此我使用下面的代码,但它给了我一个错误。有人可以指导我在这段代码中应该纠正什么?
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
}
答案 0 :(得分: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
的第一列,而不仅仅是第一列。