【发布时间】:2021-05-14 20:07:57
【问题描述】:
这是我的数据示例:
df<-read.table(text=" Colour Leave Real
Blue Y Yellow
Red N NA
Yellow Y NA
Green Y Green
Blue N NA
Green Y Red
Yellow Y Blue
Green Y NA
",header=TRUE)
我想得到这个输出:
Colour1 Colour2
FALSE Yellow
Red FALSE
Blue Yellow
FALSE Green
Blue FALSE
Red FALSE
Blue FALSE
Red Green
逻辑 颜色 1 只得到蓝色和红色,颜色 2 只得到黄色和绿色。 蓝色对应黄色,红色对应绿色。 如果 Leave 是“Y”,我们看 Real,如果 Real 有颜色,我们选择这个颜色。例如,Row1,color=Blue,Leave=Y,Real=Yellow。所以我们在 colour2 中选择 Yellow 并且 Color 1 为 FALSE。 如果 Leave 为“N”,我们查看 Real,如果 Real 没有颜色,即 NA,我们在 Color Column 中选择颜色。例如,Row2,color=Red,Leave=N,Real=NA。所以我们在 colour1 中选择 Red,Color 2 为 FALSE。 如果 Leave 为“Y”,我们查看 Real,如果 Real 没有颜色,即 NA,我们选择两种颜色。例如,最后一行,颜色 = 绿色,离开 = Y 和真实 = NA。所以我们在 colour1 中选择 Red,Color 2 得到 Green。
【问题讨论】:
-
您在 logic 解释中使用了很多 if。那么如何将它们放入
R中的if和else语句中呢?您还应该在 R 中使用is.na()和%in%函数。请先把你的努力,问清楚你卡住的地方。