【发布时间】:2019-01-10 01:17:24
【问题描述】:
我有一个名为 New 的数据框。使用这个数据框,我需要使用 for 循环和 if-else 条件创建一个数据框
新建数据框如下
no mode start end
1 S 0.026 33.059
2 T 33.176 38.057
3 S 38.202 40.082
4 T 40.145 51.160
5 S 51.272 52.254
6 T 52.274 56.238
7 S 56.359 57.259
8 T 57.396 62.280
9 S 62.454 69.270
且所需的数据框应为以下形式 即如果模式 "S" 和它的区别是
no mode start end
1 S 0.026 33.059
2 T 33.176 38.057
3 S 38.202 40.082
4 T 40.145 62.280
5 S 62.454 69.270
为此,我使用以下代码,
mode <- 0
start <- 0
end <- 0
abc <- data.frame(mode, start, end)
for (i in 1:nrow(New)) {
if((New[i,2] = "S" && New[i,4]-New[i,3])>1) abc$mode[i] = New[i,2]
else
abc$mode[i] = New[i-1,2]
if((New[i,2] = "S" && New[i,4]-New[i,3])>1) abc$start[i] = New[i,3]
else
abc$start[i] = New[i-1,3]
if((New[i,2] = "S" && New[i,4]-New[i,3])>1) abc$end[i] = New[i,4]
else
abc$end[i] = New[i,4]
}
我收到以下错误
Error in "S" && New[i, 4] - New[i, 3] : invalid 'x' type in 'x && y'
提前致谢
【问题讨论】:
-
==测试是否相等。 -
现在我收到如下错误 New[i, 2] == "S" && New[i, 4] - New[i, 3] : invalid 'y' type in 'x && y'
-
New[i,4]-New[i,3])>1是否为所有i返回 TRUE/FALSE? -
不,New[i,4]-New[i,3])>1 没有返回 TRUE/FALSE。但定义是正确的
-
if()需要 TRUE/FALSE
标签: r