在R中使用[[]]索引访问多个数据源

在R中使用[[]]索引访问多个数据源,r,indexing,R,Indexing,这是我的密码: file.number <- c(1:29) data <- setNames(lapply(paste0(file.number, ".csv"), read.csv), paste0(file.number, ".data")) n <- c(1:3,10:15,21:26) sw <- na.omit(data[[n]]$RT[data[[n]]$rep.sw=="sw"]) rep <-na.omit(data[[n]]$RT[data[[n

这是我的密码:

file.number <- c(1:29)
data <- setNames(lapply(paste0(file.number, ".csv"), read.csv), paste0(file.number, ".data"))
n <- c(1:3,10:15,21:26)
sw <- na.omit(data[[n]]$RT[data[[n]]$rep.sw=="sw"])
rep <-na.omit(data[[n]]$RT[data[[n]]$rep.sw=="rep"])

file.number注释太长

看起来
data
是一个数据帧列表。列表元素被命名,例如
1.data
2.data
等,每个数据框都有名为
RT
rep.sw
的列。那么像这样,

## representative example???
df   <- data.frame(RT=1:100,rep.sw=sample(c("sw","rep"),100,replace=TRUE))
data <- setNames(lapply(1:29,function(i)df),paste0(1:29,".data"))
此代码将把
n
中标识的数据帧一次传递给一个函数,并为每个数据帧返回
RT
列的行,其中
rep.sw=“sw”
,省略了
NA
。结果将是向量列表

我注意到大多数列都是作为因子导入的,这可能是个坏主意。您可能希望使用以下方式导入:

data <- setNames(lapply(paste0(file.number, ".csv"), read.csv, stringsAsFactors=FALSE), 
                 paste0(file.number, ".data"))

data这可能是因为
[[
括号。当您索引多个元素时,请尝试
data[n]
。此外,您可能需要例如
lappy(data[n],na.ommit)
来实现此功能。如果这样做,我会得到不同的错误:“is.na()应用于'NULL'类型的非-(列表或向量)。”当我运行sw命令时,它是空的。它是巨大的;它超过了这个文本框的限制148583个字符。我能给你提供一个子集或什么吗?是的,只需复制并粘贴大约三个列表元素的几行我不知道这是否有用:target_location=c(3L,5L,NA,1L,2L,NA),gap_side=structure(3L,3L,1L,2L,1L),.Label=c(“,”左“,”右“,”类“,”因子“,”响应=structure(c(2L,2L,1L,3L,3L,1L),”Label=c(“,”m“,”类“,”因子“,”精度=structure(c(2L,2L,1L,2L,2L,1L),”Label=c(“,”正确“,”错误“,”类“,”因子“),rep.sw=structure(c(NA,3L,1L,NA,3L,1L),”类“,”rep.Label=c“,”因子“,”类“,”rep,RT=c(0.743383531109,0.712899116566,NA,0.775258792739,0.853063922899,NA)),.Names=c(“试用数量”,“目标颜色”你真是太棒了,如果不是像你这样的人和这个社区,我会完全迷失。谢谢!
data <- setNames(lapply(paste0(file.number, ".csv"), read.csv, stringsAsFactors=FALSE), 
                 paste0(file.number, ".data"))