根据各列中的值创建有序因子

时间:2017-12-05 08:42:57

标签: r dataframe

我有一个数据集,我通过将植物暴露于不同的处理而获得。在实验结束时,我评估了植物是否存活,如果它们存活下来,它们产生了多少种子。 我将使用有序的logit模型来分析结果。为此,我想创建一个具有有序因子的列。在这个因素中,我想区分死亡的植物,存活但没有形成种子的植物,以及存活并形成种子的植物。 我使用的模拟数据集和代码:

df <-    data.frame(ID=c(1,2,3,4,5,6),alive=c(0,0,1,1,1,1),seeds=c(0,0,0,0,15,14))
df$dead<-as.numeric(df$alive<1)
df$alive_no_seeds<-as.numeric(df$alive>0&df$seeds==0)
df$alive_seeds<-as.numeric(df$alive>0&df$seeds>0)
df$status<-as.character(df$dead>0="dead"&df$alive_no_seeds>0="alive_no_seeds"&df$alive_seeds>0="alive_seeds")

这里出了问题。我得到了

Error: unexpected '=' in "df$status<-as.character(df$dead>0="

如果我得到这个因素,我想继续:

ordered.status <- factor(status, levels=c("dead", "alive_no_seeds", "alive_seeds"), ordered=TRUE)

这可能是一个简单的语法问题;如果有人可以帮助我,我会很高兴。我看到有几个帖子是有序因子是基于单列中的值,但还无法找到我的问题的解决方案。

1 个答案:

答案 0 :(得分:2)

df$status[df$alive<1] = 'dead'
df$status[df$alive>1 & df$alive_no_seeds==0] = "alive_no_seeds"
df$status[df$alive_no_seeds>0] = "alive_seeds"
像这样的事情。在数据中不确定活着或死亡是否为0

相关问题