【问题标题】:Initializing and creating a data frame in R在 R 中初始化和创建数据框
【发布时间】:2013-07-08 21:31:25
【问题描述】:

我尝试了不同的解决方案(包括几个 在 stackoverflow 和 R 帮助线程上讨论了几天。 没有一个产生好的解决方案。因此发布了这篇文章。

我需要创建一个数据框

df <- as.data.frame (matrix (nrow = 3470, ncol = 22,000)

前 3 列是字符/字符串数据。其余是数字数据。混合模式搞砸了这种方法。

df <- data.frame (c1 = char(22,000), c2 = char(22,000), c3 = char(22,000), .....)

有没有办法在这个解决方案中将第 4 列设置为 22,000 列? (然后我可以使用 colnames (df) 来设置真实姓名)。

在用类似的东西初始化数据帧时

 df <- data.frame (c1 = char(22,000), c2 = char(22,000), c3 = char(22,000), .....)

是否有一种机制可以使用诸如 rep 之类的东西来声明 c4 到 c22,000 是 数字?

非常感谢。 (我知道初始化数据框已经讨论过几次 次。我尝试了几种方法,但没有找到一个好的解决方案)。因此这篇文章 一个被打死的话题。

【问题讨论】:

    标签: r dataframe creation


    【解决方案1】:

    我不确定你从哪里得到的语法。首先,不要使用逗号作为千位分隔符;这对人类来说很好,但对计算机来说却不是。其次,创建字符向量的函数是character(n),而不是char(n)。第三,data.frame 的参数是您希望数据框中的 ,而不是行,因此您可能需要 3470,而不是 22000。最后,数字向量的等效函数是 @987654324 @。

    df <- data.frame(
        c1 = character(3470),
        c2 = character(3470),
        c3 = character(3470),
        n1 = numeric(3470),
        ...)
    

    如果你真的有 22000 列,你可以通过传递一个矩阵来实现,该矩阵将被转换为多列:

    df <- data.frame(
        c1 = character(3470),
        c2 = character(3470),
        c3 = character(3470),
        n = matrix(0, nrow=3470, ncol=21997))
    

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多