什么' col.names'在'as.data.frame'中做在R?

时间:2017-08-17 17:43:50

标签: r

我使用as.data.frame()函数将表格转换为R中的数据框,我想用函数设置列名。

我发现as.data.frame(),的可选参数为col.names

文档说它是列名的字符向量。但是,无论我放入col.names,结果都保持不变。

x = c('a','b','c','a')
x_table = table(x)
x_df = as.data.frame(x_table, col.names = c('name', 'freq'))

这里的输出是:

    x Freq
1   a    2
2   b    1
3   c    1

我知道在创建数据帧后我可以使用colnames(df)来更改列名称,但我真的很想知道为什么col.names在这里不起作用。

谢谢。

2 个答案:

答案 0 :(得分:2)

如果您想在创建数据框后避免分配列名,可以使用dnn函数中的table参数指定“名称”列和responseName as.data.frame函数中的参数,用于指定“freq”列。

x <- c('a','b','c','a')
x_df <- as.data.frame(table(x, dnn = list("name")), responseName = "freq")

答案 1 :(得分:0)

我认为这是一个类错误,正如@Henrik指出的那样。使用此代码我可以获得正确的名称,但调用错误

x=c('a','b','c','a')
x_table=table(x)
x_df=as.data.frame(x_table,colnames(x_df)<-c("name","freq"))

>x_df
  name freq
1    a    2
2    b    1
3    c    1

data.frame中的错误(do.call(&#34; expand.grid&#34;,c)(dimnames(provideDimnames(x,:     提供的行名称长度错误

如果我设置,

row.names=NULL 

在同一行代码中,未命名的Df再次吐出,但没有错误。

最佳猜测是格式/类错误。