我有一个包含3列“ ID”,“ on.tank”,“ on.mains”的数据框。数据如下:
ID:依次打开1,2,3,4,5,6,7,8,9,10.tank:打开25,0,10,0,43,0,5mains:0, 12,0,11,0,2,0 因此第2列和第3列在零和一个值之间交替,而当一个为零时,另一列则交替具有一个值。
我想创建一列来交替交织每个值,然后创建第二列,这将是on.main,on.tank,on.main等因素的交替,因为它代表油箱上的天数,然后是电源上的天数,然后在油箱上等几天,等等。
我尝试使用melt,但是它不会给我交替使用,它会堆叠数据,所以我先进行.tank,on.tank,on.tank等2000行,然后再进行on.mains,on.mains等
UISwitch
答案 0 :(得分:1)
这是您的数据:
df <- data.frame(ID=1:7,
on.tank=c( 25,0,10,0,43,0,5),
on.mains=c(0,12,0,11,0,2,0))
使用基数R:
df$On.which <- ifelse(df$on.tank > df$on.mains, "on.tank", "on.mains")
这将起作用,除非您的任何值均为负。如果您使用负值,请使用:
df$On.which <- ifelse(df$on.mains==0, "on.tank", "on.mains")
这是您需要的吗?如果删除引号,也可以使用此方法获取合并到1中的列的值。