这是我的数据框“ data.frame”
X Y
1 10 12
2 20 22
3 30 32
低于我想要的。
1)添加一个名为“ New_col”的新列
2)给定id的每个单元格都是从X值到Y值的序列(步骤1)。
X Y New_col
1 10 12 10
11
12
2 20 22 20
21
22
3 30 32 30
31
32
然后填充空单元格
X Y New_col
1 10 12 10
1 10 12 11
1 10 12 12
2 20 22 20
2 20 22 21
2 20 22 22
3 30 32 30
3 30 32 31
3 30 32 32
我尝试了以下方法:
New_col<-seq(from = data.frame$X, to = data.frame$Y, by = 1)
此代码的问题是仅计算第一行的序列。然后我尝试了一个循环:
for (i in 1: length(data.frame$X))
{
New_col <-seq(from = data.frame$X, to = data.frame$Y, by = 1)
}
这是我得到的错误:
Error in seq.default(from = data.frame$X, to = data.frame$Y, by = 1) :
'from' must be of length 1
谢谢您的帮助。
您可以使用apply
:
do.call(rbind, apply(dat, 1, function(x)
data.frame(X = x[1], Y = x[2], New_col = seq(x[1], x[2]))))
dat
数据框的名称在哪里。您可以忽略警告。
X Y New_col
1.1 10 12 10
1.2 10 12 11
1.3 10 12 12
2.1 20 22 20
2.2 20 22 21
2.3 20 22 22
3.1 30 32 30
3.2 30 32 31
3.3 30 32 32
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句