【发布时间】:2019-09-12 04:30:25
【问题描述】:
我正在尝试根据另一列和查找表计算数据框中的另一列。我有一个只显示少量数据的简单示例(我的真实数据集包含数百万行)。
我有以下数据集:
lookup<- data.frame("class"=c(1, 2, 1, 2), "type"=c("A", "B", "B", "A"),
"condition1"=c(50, 60, 55, 53), "condition2"=c(80, 85, 86, 83))
lookup
class type condition1 condition2
1 A 50 80
2 B 60 85
1 B 55 86
2 A 53 83
我的数据框是这种形状:
data<- data.frame("class"=c(1, 2, 2, 1, 2, 1),
"type"=c("A","B", "A", "A", "B", "B"),
"percentage_condition1"=c(0.3, 0.6, 0.1, 0.2, 0.4, 0.5),
"percentage_condition2"=c(0.7, 0.4, 0.9, 0.8, 0.6, 0.5))
data
class type percentage_condition1 percentage_condition2
1 A 0.3 0.7
2 B 0.6 0.4
2 A 0.1 0.9
1 A 0.2 0.8
2 B 0.4 0.6
1 B 0.5 0.5
我想在我的数据框中创建一个名为 data 的新列,它将使用查找表,例如:
在我的 class 与我的 type 列匹配的数据中,它可以在我的数据帧数据中计算一个新列,例如(不是真实代码):
d$new
我知道如何使用 if else 语句来做到这一点,但我正在尝试更有效地做到这一点,因为我正在处理大量数据。我知道用查找表中的一列来做,但我没有成功处理几列(类和类型列)。
感谢您的帮助和建议!
【问题讨论】:
标签: r dataframe lookup-tables