[英]Why does combining two `data.frame` objects using the `data.frame` function cut off a long variable name?
我注意到,如果我尝试两种不同的组合data.frame
对象到一个更大的data.frame
使用data.frame
函数,变量名被切断(即见的输出names(db)
从下面的代码。
我目前通过使用data.table
函数组合变量来避免这种情况。
我的问题是:
为什么data.frame
命令会切断我的变量名? 这可能是一个非常简单的问题,可以通过使用迎刃而解as.data.frame
上功能data.table
对象将其转换回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环境更加“兼容”。 您可以使用data.frame()
的check.names=FALSE
参数覆盖它:
a <- data.frame(rnorm(100))
b <- data.frame(rnorm(100))
names(a) <- "thisisaveryverylongvariablename-mean()"
names(b) <- "thisisanotherveryverylongvariablename-std()"
db <- data.frame(a, b, check.names = FALSE)
names(db)
# [1] "thisisaveryverylongvariablename-mean()" "thisisanotherveryverylongvariablename-std()"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.