我使用循环删除数据框中与复杂模式匹配的特定行。循环适用于单个数据帧。
我想对存储在列表中的多个数据帧使用相同的过程。而不是围绕这个循环编写另一个循环,我想到使用plyr。但它没有按预期工作。
以下是一个例子:
# create a list
testlist<-list(as.data.frame(Titanic),
as.data.frame(Titanic))
# test
for(i in 1: nrow(testlist[[2]]))
if(grepl("1st",testlist[[2]][i,1],perl = T)==TRUE)
testlist[[2]]<-testlist[[2]][-i,] else
testlist[[2]]<-testlist[[2]]
testlist[[2]]
# works
# use plyr
testlist<-
llply(.data = testlist,
.fun = function (x)
for(j in 1:nrow(x))
if(grepl("1st",x[j,1],perl = T)==TRUE)
x<-x[-j,] else
x<-x
)
testlist[[1]]
# returns NULL
答案 0 :(得分:0)
功能结束时缺少的详细信息为return(x)
。
testlist<-
llply(.data = testlist,
.fun = function (x){
for(j in 1:nrow(x))
if(grepl("1st",x[j,1],perl = T)==TRUE)
x<-x[-j,] else
x<-x;
return(x)}
)