我怎样才能将一个变量的一半值分成两个变量?

时间:2014-03-18 17:53:58

标签: r

我从txt文件中获得了一个数据列表,该文件有一个变量。我怎样才能将后半部分值放入变量2?

这里有一些数据

4 0 0 0 3 2 0 0 6 7 6 2 1 11 6 1 2 1 1 2 0 2 2 1 0 12 8 4 五 0 五 4 1 0 8 2 五 10 17 1

我不知道为什么它看起来像这样,但它是txt文件中的一个列。

文森特

2 个答案:

答案 0 :(得分:0)

例如使用split

xx <- 1:10
split(1:10,rep(c('a','b'),each=length(xx)/2))
$a
[1] 1 2 3 4 5

$b
[1]  6  7  8  9 10

或者更好地使用splitcut

 split(xx,cut(xx,2,label=c('a','b')))
$a
[1] 1 2 3 4 5

$b
[1]  6  7  8  9 10

答案 1 :(得分:0)

如果您有矢量,则可以使用length

的矢量运算
> x <- seq(1:20)  # twenty values

> x[1:(length(x)/2)]  # first ten values
## [1]  1  2  3  4  5  6  7  8  9 10

> x[-(1:(length(x)/2))]  # second ten values
## [1] 11 12 13 14 15 16 17 18 19 20

或者,如果您从data.frame开始,并希望从一列中选择两列,请使用nrow代替length

> x <- data.frame(var1 = seq(1:20))
> y <- data.frame(var1 = x[1:(nrow(x)/2), ], var2 = x[-(1:(nrow(x)/2)), ])
> y
##    var1 var2
## 1     1   11
## 2     2   12
## 3     3   13
## 4     4   14
## 5     5   15
## 6     6   16
## 7     7   17
## 8     8   18
## 9     9   19
## 10   10   20