为什么as.data.frame忽略col.names=vector

为什么as.data.frame忽略col.names=vector,r,dataframe,R,Dataframe,我固执地试图在一行中创建一个包含命名行和列的数据帧。我意识到我可以通过使用colnames(forecast)很容易地做到这一点,但我想简化一下,如果只是为了证明我可以做到的话 以下操作无效--无错误,但未设置列名 forecast <- as.data.frame(cbind(c(1, 32, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335),

我固执地试图在一行中创建一个包含命名行和列的数据帧。我意识到我可以通过使用colnames(forecast)很容易地做到这一点,但我想简化一下,如果只是为了证明我可以做到的话

以下操作无效--无错误,但未设置列名

forecast <- as.data.frame(cbind(c(1, 32, 60, 91, 121, 152,
                                182, 213, 244, 274, 305, 335),
                                c(31, 59, 90, 120, 151, 181,
                                212, 243, 273, 304, 334, 365),
                                as.vector(rep(0, times=12))),
                                row.names = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                                               "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
                                col.names = c("Start", "End", "forecast"))


> forecast
     V1  V2 V3
Jan   1  31  0
Feb  32  59  0
Mar  60  90  0
Apr  91 120  0
May 121 151  0
Jun 152 181  0
Jul 182 212  0
Aug 213 243  0
Sep 244 273  0
Oct 274 304  0
Nov 305 334  0
Dec 335 365  0
预测
V1 V2 V3
一月一日三十一日
2月32日59 0
3月60日90 0
四月九一一二〇〇
5月121日1510
六月1521810
7月182日212 0
8月213日2430
九月2442730
10月274日304 0
11月305日3340
12月335日365 0
以下内容确实可以按需要工作

forecast <- setNames(data.frame(cbind(c(1, 32, 60, 91, 121, 152,
                                      182, 213, 244, 274, 305, 335),
                                      c(31, 59, 90, 120, 151, 181,
                                      212, 243, 273, 304, 334, 365),
                                      as.vector(rep(0, times=12))),
                                      row.names = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                                                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")),
                                      c("Start", "End", "forecast"))

> forecast
    Start End forecast
Jan     1  31        0
Feb    32  59        0
Mar    60  90        0
Apr    91 120        0
May   121 151        0
Jun   152 181        0
Jul   182 212        0
Aug   213 243        0
Sep   244 273        0
Oct   274 304        0
Nov   305 334        0
Dec   335 365        0
预测
起止预测
一月一日三十一日
2月32日59 0
3月60日90 0
四月九一一二〇〇
5月121日1510
六月1521810
7月182日212 0
8月213日2430
九月2442730
10月274日304 0
11月305日3340
12月335日365 0

必须嵌套在另一个函数中似乎很奇怪。在as.data.frame文档中,它表示使用col.names=names(x)。这是否意味着它只能从输入对象生成名称?

这是什么语言?(“DataFrames”是一个存在于许多语言中的概念,例如R、Julia和Python。在我看来这像R,但我从未实际使用过R,所以我只是猜测…)对不起。这是在R中。为什么不只是:
data.frame(开始=c(1,32,60,91,121,152,182,213,244,274,305,335),结束=c(31,59,90,120,151,181,212,243,273,304,334,365),预测=as.vector(rep(0,times=12)),行名=c(“一月”,“二月”,“三月”,“4月”、“5月”、“6月”、“7月”、“8月”、“9月”、“10月”、“11月”、“12月”)
?@tushaR--谢谢,这很有效。