【发布时间】:2016-05-20 08:02:41
【问题描述】:
我对 R 很陌生,这个问题可能听起来很奇怪。我有一个 data.frame,第一列中有其他 data.frames 的名称:
> data
tablename avg_size
1 ttest 5000
2 testsheet 15000
5 ttest2 15000
6 mtcars 13000
然后我想做的是获取表的名称(那些是 data.frames)并在这些 data.frames 上运行一些函数。例如,我想获得每个表中 NA 的总和,这可以使用
missing_values <- sum(is.na(eval(as.name(as.vector(data[1])))))
我的问题是 1)这看起来有点太复杂了,我认为可能有更好的解决方案? 2)使用其他功能我遇到麻烦,例如
infinite_values <- sum(is.infinite(as.numeric(eval(as.name(as.vector(data[1]))))))
这不起作用,插入“as.numeric”没有帮助。
有人可以帮忙吗?
编辑: 感谢您到目前为止的答案!我都试过了
infinite_values <- sum(is.infinite(as.numeric(eval(as.name(as.vector(data[1]))))))
和
obg <- mget( as.character(data[,1]) )
但它返回“错误:''ttest'' 的值未找到。” 由于此解决方案似乎对您有用,我可能做错了什么?
【问题讨论】:
-
我想我至少检测到一个问题,“mtcars”在不同的环境中,因此无法被 mget 找到。现在和 unlist() 它似乎工作。谢谢!