将一列数据转换为R中的两列

时间:2012-03-01 00:10:16

标签: r

我有一个文本文件,其中包含一个1800个条目的colunm,实际上是两组已合并的数据(大小,年龄)。第一个数字(row1,column1)是大小1,第二个数字(row2,column1)是age1,第三个列(row3,column1)是大小2,第四个数字(row4,column1)是age2,依此类推。有谁知道如何将其拆分为两列900个条目的矩阵?

3 个答案:

答案 0 :(得分:2)

假设你有data.frame df。然后试试这个

Size <- df[seq(from = 1, to = nrow(df), by = 2), 1]
Age <- df[seq(from = 2, to = nrow(df), by = 2), 1]
dfNew <- data.frame(Size, Age)

答案 1 :(得分:1)

你可以用它制作一个矩阵并按这样做。

matrix(DF[,1], ncol=2, byrow=TRUE)

其中DF是您将数据读入的data.frame。

答案 2 :(得分:1)

如果您有一个包含交替大小和年龄数据的向量x

df <- do.call(data.frame, split(x, c("size", "age")))

如果您想要2列矩阵,请使用cbind

df <- do.call(cbind, split(x, c("size", "age")))

这不是最有效的方法,但它会自动为您提供免费的列名。