【发布时间】:2020-04-21 08:50:00
【问题描述】:
刚从 R 开始(以及一般的编码)...我在使用两个不同的数据帧时遇到了这个计算问题,但我找不到解决方案。我为我的问题创建了一个简化示例:
我有两个数据框,df_1 和 df_2:
df_1:
Numbers Assigned_color
1 -
2 -
3 -
4 -
5 -
6 -
df_2:
Value Color
4 Blue
5 Orange
6 Red
我想要的是根据使用两个数据帧中的值的函数为 df_1 中的数字分配颜色。在此示例中,如果 df_1$Number 和 df_2$Value 的总和等于 10,我希望分配颜色。这将导致以下结果 (df_1):
Numbers Assigned_color
1 -
2 -
3 -
4 Red
5 Orange
6 Blue
我得到的最接近的是:
for(i in 2:nrow(df_1)) {
for(j in 2:nrow(df_2)) {
df_1$Assigned_color[i] <- ifelse(df_1$Numbers[i] + df_2$Value[j] == 10,
df_2$Color[j],
df_1$Assigned_color[i])
}}
但是不起作用,因为我得到的结果是这样的:
Numbers Assigned_color
1 -
2 -
3 -
4 Red
5 Orange
6 -
...我不明白为什么。非常感谢您的耐心等待。
编辑:真正的功能要复杂得多,数据集也很大。对不起,我应该提到这一点。我实际上正在寻找的是脚本,我可以在其中输入任何类型的长复杂函数并根据值分配“颜色”,如下所示:
for(i in 2:nrow(df_1)) {
for(j in 2:nrow(df_2)) {
df_1$Assigned_color[i] <- ifelse
[very long function using values from both dataframes] == [desired value],
df_2$Color[j],
df_1$Assigned_color[i])
}}
【问题讨论】:
标签: r