在R中初始化和创建数据框

时间:2013-07-08 21:31:25

标签: r dataframe creation

我尝试过不同的解决方案(包括几个 在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 数字?

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

1 个答案:

答案 0 :(得分:2)

我不确定你从哪里获得这种语法。首先,不要使用逗号作为千位分隔符;这对人类来说很好,但不适用于电脑。其次,创建角色向量的功能是character(n),而不是char(n)。第三,data.frame的参数是你想要的数据框中的,而不是行,所以你可能想要3470,而不是22000.最后,数字向量的等价函数是numeric(n)

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))