我需要一些建议来解决以下问题:
我有一个包含两列的数据框,一列包含日期,另一列包含事件的频率。 现在我想在这个数据帧中添加第三列,它应该包含一些二进制数据:1表示频率为100和更高的天数,0表示较低的数据。
有谁知道如何以聪明的方式做到这一点(我害怕手工编写;-)?谢谢你的回答!
答案 0 :(得分:1)
data$newcol = as.integer(data$freq >= 100)
替代地
data$newcol = ifelse(data$freq >= 100, 1, 0)
替代地
data$newcal = 0
data$newcol[data$freq >= 100] = 1
答案 1 :(得分:0)
df$freq.gt.100 = as.integer(df$freq >= 100)
括号内的位评估为TRUE
或FALSE
,可通过as.integer
转换为1或0。
没有什么可以“害怕”:您可以自己测试表达式的右侧以检查它是否有效,并且只有当您对此感到满意时才将其作为新列添加到原始数据中
编辑:我没有看到上面的答案,因为我创建了这个答案并接到了电话!