【发布时间】:2019-04-23 22:50:19
【问题描述】:
我想创建一个高效的 ifelse 语句,这样如果 df2 中的列与 df1 中的列匹配,则 df2 中的该行以特定方式编码。我的代码有效,但效率很低。
示例数据:
Df1
A B C
111 2 1
111 5 2
111 7 3
112 2 4
112 8 5
113 2 6
Df2
A B
112 2
111 2
113 2
111 5
111 7
112 8
期望的结果:
Df2
A B C
112 2 4
111 2 1
113 2 6
111 5 2
111 7 3
112 8 5
我做的是这样的:Df2$C<- ifelse(Df2$A == 111 & Df2$B == 2, 1, 0)Df2$C<- ifelse(Df2$A == 111 & Df2$B == 5, 2, 0)Df2$C<- ifelse(Df2$A == 111 & Df2$B == 7, 3, 0)...
这可行,但有没有办法让 df2 可以引用 df1 中的列并创建列 df2$C,这样就不必手动输入每个组合?
【问题讨论】:
标签: r loops dataframe if-statement