我想根据先前的燃料数据创建一个新列来指示燃料类型,但我不知道如何做到这一点。请帮助!感谢
答案 0 :(得分:1)
首先,请查看上述评论中提供的有关如何在此处提出良好问题的资源。设置一个好问题有时会很痛苦,但这对于快速有效地回答你的问题确实有很长的路要走。
除此之外,这里有一个我认为你要求的东西。
首先,让我们创建一个简单,可重现的数据集(即任何人都可以运行此代码来创建相同的数据集,这意味着我们都从同一点开始):
df <- data.frame( fuel12 = c(100,0,0,100,0)
, fuel34 = c(0,100,0,100,0)
, fuel56 = c(0,0,100,0,0)
)
# fuel12 fuel34 fuel56
# 1 100 0 0
# 2 0 100 0
# 3 0 0 100
# 4 100 100 0
# 5 0 0 0
接下来,我们将使用apply
在df
列中查找任何非零值。如果没有非零值,则该列将显示None
。我不确定是否有多个非零列,但以防我们列出所有非零列并用逗号分隔(例如fuel12,fuel34
)。
df$which_fuel <- apply(df, 1, function(x) { ifelse(sum(x)==0
, "None"
, paste(names(df)[x > 0], collapse=",")
)})
df
# fuel12 fuel34 fuel56 which_fuel
# 1 100 0 0 fuel12
# 2 0 100 0 fuel34
# 3 0 0 100 fuel56
# 4 100 100 0 fuel12,fuel34
# 5 0 0 0 None
这是你在找什么?