【问题标题】:converting one column of data into two columns in R将一列数据转换为R中的两列
【发布时间】:2012-03-01 00:10:15
【问题描述】:

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

【问题讨论】:

  • 我愿意!但我不知道你的数据是什么样的,或者你到目前为止尝试过什么......我会从read.tableread.csv开始,但如果你可以发布一些所说的文件,我可以告诉你当然!
  • 我已经使用 read.table 函数将表格读入 R 中,但当时被阻碍了。数据的前几行如下所示:121.4596925 8.268601722 115.2194678 6.273456593 148.9 16.8 117.7088225 8.19989356 271.5483869 96.45334797
  • 那么下面 MYaseen208 给出的答案应该有效。

标签: r


【解决方案1】:

假设你有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)

【讨论】:

    【解决方案2】:

    你可以用它做一个矩阵,然后这样做。

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多