Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:在列表中应用函数_R_Dataframe - Fatal编程技术网

R:在列表中应用函数

R:在列表中应用函数,r,dataframe,R,Dataframe,我有一个包含2000个组件数据帧的大列表。以下只是一个例子: set.seed(1234) mydf1 <- data.frame(v = c(1:5), x = rnorm(5, 0.06, 0.01)) mydf2 <- data.frame(v = c(1:5), x = rnorm(5, 0.06, 0.01)) mydf3 <- data.frame(v = c(1:5), x = rnorm(5, 0.06, 0.01)) mylist <- list(myd

我有一个包含2000个组件数据帧的大列表。以下只是一个例子:

set.seed(1234)
mydf1 <- data.frame(v = c(1:5), x = rnorm(5, 0.06, 0.01))
mydf2 <- data.frame(v = c(1:5), x = rnorm(5, 0.06, 0.01))
mydf3 <- data.frame(v = c(1:5), x = rnorm(5, 0.06, 0.01))
mylist <- list(mydf1, mydf2, mydf3)

mylist

 [[1]]
  v          x
1 1 0.03792934
2 2 0.05277429
3 3 0.06084441
4 4 0.02654302
5 5 0.05429125

[[2]]
  v          x
1 1 0.05506056
2 2 0.04425260
3 3 0.04453368
4 4 0.04435548
5 5 0.04109962

[[3]]
  v          x
1 1 0.04522807
2 2 0.04001614
3 3 0.04223746
4 4 0.05064459
5 5 0.05959494
set.seed(1234)

mydf1
lappy(mylist,函数(y)子集(y,x<0.05))
您可能需要使用plyr包的llply函数

library(plyr)
mylist1 = llply(mylist, subset, x<0.05)

mylist1

[[1]]
  v          x
1 1 0.04792934
4 4 0.03654302

[[2]]
[1] v x
<0 rows> (or 0-length row.names)

[[3]]
[1] v x
<0 rows> (or 0-length row.names)
库(plyr)

mylist1=llply(mylist,subset,x一种方法是将子集代码作为函数使用
lappy


因为
mydf1[mydf1$x当你开始使用which函数的问题时,我和其他人一样使用了which和lappy


lapply(mylist,function(y)y[which(y$x>0.05),])

请参见“应用”、“sapply”、“lapply”和“tapply”。学习它们,练习它们。你不会后悔的。+1 plyr对于这个问题是不成功的,但对于初学者来说非常有用。
library(plyr)
mylist1 = llply(mylist, subset, x<0.05)

mylist1

[[1]]
  v          x
1 1 0.04792934
4 4 0.03654302

[[2]]
[1] v x
<0 rows> (or 0-length row.names)

[[3]]
[1] v x
<0 rows> (or 0-length row.names)
lapply(mylist, function(x)x[x$x<0.05, ])

[[1]]
  v          x
1 1 0.04792934
4 4 0.03654302

[[2]]
[1] v x
<0 rows> (or 0-length row.names)

[[3]]
[1] v x
<0 rows> (or 0-length row.names)