2
所以这是一些示例数据,我有:符合条件语句后复制值?
signal1 signal2 signal3
1 0 1
1 1 1
1 0 1
1 0 1
1 0 1
1 0 1
1 0 0
而且我想添加第四列,这样,每当signal1==signal2==signal3
均为1,新栏重复1,直到SIGNAL3从1变为0
所以从上面的例子中,我想产生类似:
signal1 signal2 signal3 signal_generate
1 0 1 0
1 1 1 1
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
1 0 0 0
我想这将通过ifelse
语句来实现,但我有很多困难在这个看似简单的任务。我想沿着线做的事:
signal_generate <- ifelse(data[,1]==data[,2]&data[,3]>0, rep(data[,3]==1), 0)
但我无法弄清楚如何让signal3
重复的正确次数。
编辑:我正在意识到ifelse
会很愚蠢,因为它只会查看条件signal1 == signal2 == signal3
恰好满足的行。我仍然非常卡住,帮助将不胜感激!
谢谢。快速问题,'as.integer((rowSums(df [,1:3]))== 3L'只适用于表,或者可以用于'data.frame'吗?我试着在我的实际数据并且它返回所有内容的'0' – Nikitau
来自rowSums的帮助“...对于数字数组(或数据框)”我没有你的数据的例子 - 最好使用'dput'并且添加我的例子是一个数据框架,我建议你通过执行从最内层到最外层的最小代码来检查结果,并检查你的括号 – epi99