【发布时间】:2015-12-02 17:15:52
【问题描述】:
我正在尝试根据条件对一些向量进行子集化。单独对它们进行子集化给了我不同的行为(正确的行为),而不是在包含它们的列表上运行子集。这可能是一件我没有注意到的简单事情。
单独子集:
a<-1:10
b<-11:20
a[a==5]<-0
a
这给了:
> a
[1] 1 2 3 4 0 6 7 8 9 10
使用lapply 和与函数相同的子集技术(即x[x==5]<-0)在列表中进行子集:
a<-1:10
b<-11:20
w<-list(a,b)
q<-lapply(w, function(x){x[x==5]<-0})
q
这给了:
> q
[[1]]
[1] 0
[[2]]
[1] 0
【问题讨论】:
-
你需要从函数
q <- lapply(w, function(x) { x[x == 5] <- 0; x })返回x -
@RichardScriven 效果很好。