【发布时间】:2026-01-10 22:00:01
【问题描述】:
我注意到,如果我尝试使用data.frame 函数将两个不同的data.frame 对象组合成一个更大的data.frame,变量名称将被截断(即,请参阅下面代码中names(db) 的输出。
我目前通过使用data.table 函数组合变量来避免这种情况。
我的问题是:
为什么data.frame 命令会切断我的变量名?这可能是一个很简单的问题,可以通过使用data.table 对象上的as.data.frame 函数将其转换回data.frame 来轻松解决,但我很好奇为什么变量名被截断首先,如果我只使用 data.frame 函数。我尝试使用 R 和 Google 中的帮助来寻找对此的洞察力,但到目前为止还没有成功。我正在寻求更多答案,以帮助我更好地了解 R、data.table 和 data.frame 的工作原理(因为我是一个相对较新的 R 用户,最近从 Stata 切换)。
提前致谢!
> a <- data.frame(rnorm(100))
> b <- data.frame(rnorm(100))
> names(a) <- "thisisaveryverylongvariablename-mean()"
> names(b) <- "thisisanotherveryverylongvariablename-std()"
> db <- data.frame(a, b)
> names(db)
[1] "thisisaveryverylongvariablename.mean.." "thisisanotherveryverylongvariablename.std.."
> names(c(a, b))
[1] "thisisaveryverylongvariablename-mean()" "thisisanotherveryverylongvariablename-std()"
> db2 <- data.table(a, b)
> names(db2)
[1] "thisisaveryverylongvariablename-mean()" "thisisanotherveryverylongvariablename-std()"
【问题讨论】:
标签: r dataframe data.table