【发布时间】:2016-11-22 11:06:39
【问题描述】:
我有一个包含 x 个数据框的大列表 (List1),每个数据框由(假设)2 个变量的 4 个观察值组成。典型的数据框如下所示:
YEAR TEMP
1861 2.09
1862 2.17
1863 2.02
1864 2.04
............
我希望在第二列中找到最接近值 2 的值(但理想情况下不大于 2.05 且不小于 1.95),然后从左侧相邻列返回年份。这在 Excel 中使用 VLOOKUP 和 INDEX 等函数很简单,但是在 R 中是否有任何等效函数?忽略它需要 >=1.95 和
result=lapply(List1, function(x) which.min(abs(x-2)))
但这会返回错误:
Error in which.min(abs(x - 2)) :
(list) object cannot be coerced to type 'double'
我不认为我在这里很远,但是谁能建议我在哪里可以纠正这个问题?
【问题讨论】:
-
lapply(List1, function(i) i$YEAR[i$TEMP >=1.95 & i$TEMP <= 2.05])怎么样? -
你需要考虑 x 是一个data.frame
标签: r