我使用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
在这里不起作用。
谢谢。
答案 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再次吐出,但没有错误。
最佳猜测是格式/类错误。