【发布时间】:2019-08-23 07:48:12
【问题描述】:
我正在 R 中编写代码以添加一个新列,其中需要根据两个条件填充值。问题是有两列“等级”和“功能级别”。每个等级都有多个功能级别。 例如,如果存在等级“A”,则等级 A 的功能级别为 f1、f2、f3。现在我需要按以下方式填充一个名为“combination_of_rank_and_functionallevel”的列:
if rank = A and functional_level = f1,
then combination_of_rank_and_functionallevel = A1
else if rank = A and functional_level = f2,
then combination_of_rank_and_functionallevel = A2
else if rank = B and functional_level = f4,
then combination_of_rank_and_functionallevel = B4
等等……
我用 R 编写了一段代码来执行这个逻辑。代码被执行,但新列没有填充新值。我正在分享下面的代码。
if(df$Rank == "A" & df$Function.level == "F1"){
df$combination_of_rank_and_FL = "A 1"
}else if (df$Rank == "A" & df$Function.level == "F2"){
df$combination_of_rank_and_FL = "A 2"
}else if (df$Rank == "A" & df$Function.level == "F3"){
df$combination_of_rank_and_FL = "A 3"
}else {
df$combination_of_rank_and_FL = "To be removed from analysis"
}
}
因此,当条件满足时,应该填充新列“combination_of_rank_and_FL”。
【问题讨论】:
-
看看
ifelse()。if只接受长度为 1 的逻辑向量,而ifelse是向量化的。 -
你能用
dput(df)分享df吗?见stackoverflow.com/questions/5963269/…
标签: r if-statement multiple-conditions