R 如何将数据类型和数据结构混合的列表子集?
我有一个列表,其中包括数据类型(字符)和数据结构(数据帧)的混合 我只想保留数据帧,并删除其余的数据帧R 如何将数据类型和数据结构混合的列表子集?,r,R,我有一个列表,其中包括数据类型(字符)和数据结构(数据帧)的混合 我只想保留数据帧,并删除其余的数据帧 > head(list) [[1]] [1] "/Users/Jane/R/12498798.txt error" [[2]]
> head(list)
[[1]]
[1] "/Users/Jane/R/12498798.txt error"
[[2]]
match
1 Japan arrests man for taking gun
2 Extradition bill turns ugly
file
1 /Users/Jane/R/12498770.txt
2 /Users/Jane/R/12498770.txt
[[3]]
[1] "/Users/Jane/R/12498780.txt error"
我希望最终列表只包含数据帧:
[[2]]
match
1 Japan arrests man for taking gun
2 Extradition bill turns ugly
file
1 /Users/Jane/R/12498770.txt
2 /Users/Jane/R/12498770.txt
基于该示例,OP的
列表
元素可能是向量
,并且想要删除任何具有“error”子字符串的元素
list[!sapply(list, function(x) any(grepl("error$", x)))]
基于该示例,OP的列表
元素可能是向量
,并且想要删除任何具有“error”子字符串的元素
list[!sapply(list, function(x) any(grepl("error$", x)))]
尝试list[sapply(list,inherits,“data.frame”)]
。或者,更简单的,list[sappy(list,is.data.frame)]
@ruibradas我尝试过使用它,但它显示了错误列表[sappy(results,is.data.frame)]:类型为“builtin”的对象不可子集
否,在这个问题中,对象名为list
,而不是结果
。如果是后者,请尝试results[sapply(results,is.data.frame)]
。根据您的示例,预期的输出显示.txt
链接,而不是data.frame
。我猜您需要删除有错误的子字符串。如果是这种情况,list[!sappy(list,function(x)any(grepl(“error$”,x)))]
尝试list[sappy(list,inherits,“data.frame”)]
。或者,更简单的,list[sappy(list,is.data.frame)]
@ruibradas我尝试过使用它,但它显示了错误列表[sappy(results,is.data.frame)]:类型为“builtin”的对象不可子集
否,在这个问题中,对象名为list
,而不是结果
。如果是后者,请尝试results[sapply(results,is.data.frame)]
。根据您的示例,预期的输出显示.txt
链接,而不是data.frame
。我猜您需要删除有错误的子字符串。如果是这种情况,list[!sapply(list,function(x)any(grepl(“error$”,x)))]