R - 根据另一列中的值选择并返回列值
问题描述:
我想根据另一列中的值选择并返回列的一个子集中的列值。R - 根据另一列中的值选择并返回列值
具体来说,我想通过在MAX变量=“RP”时选择RE中的值并在MAX变量=“IP”时选择IE中的值来创建新变量(“NEWE”)。
值得注意的是,我正在处理约160列和约70,000行的数据表(我注意到在我的示例中包含V1-V9的附加列的存在)。
有:
V1 … V9 RE IE MAX
4 … 3 3 4 RP
6 … 6 3 2 IP
2 … 2 1 2 IP
6 … 2 2 3 RP
. . . . . .
. . . . . .
. . . . . .
而且数据集,我想:
V1 … V9 RE IE MAX NEWE
4 … 3 3 4 RP 3
6 … 6 3 2 IP 2
2 … 2 1 2 IP 2
6 … 2 2 3 RP 2
. . . . . . .
. . . . . . .
. . . . . . .
预先感谢您的帮助!
答
data$NEWE <- ifelse(data$MAX == "RP", data$RE, ifelse(data$MAX == "RP",data$IE, "value if both doesn't satify"))
如果它的RP和IP都是!
data$NEWE <- ifelse(data$MAX == "RP", data$RE , data$IE)
为您的情况:其ifelse的简单延伸 - (避免错字更喜欢使用有())
data$NEWE <- with(data, ifelse(MAX == "RP", RE,
ifelse(MAX == "IP",IE,
ifelse(MAX == "AP", AE,
ifelse(MAX == "SP", SE,
ifelse(MAX == "EP",EE,
ifelse(MAX == "CP", CE, NA)))))))
您是否尝试过使用'ifelse'? –
它会在“RP”和“IP”之间吗? –
不,程序将在两个迭代之间进行六个不同的列 – Justin