我有一个data.frame,其中有一列,其属性如下所示:
$ variable : Named num 0.887 0.886 0.887 0.887 0.887 ...
..- attr(*, "names")= chr "2010-01-04 00:00" "2010-01-04 00:01" "2010-01-04"
我试图在另一个data.frame中回复这种格式,但是我无法将变量命名为num,我尝试了这种方法:
vec = rnorm(10)
names(vec) = letters[1:10]
dd = data.frame(a = vec)
str(dd)
还有这个:
dd = data.frame(a = rnorm(10))
dd$a = setNames(dd$a, letters[1:10])
str(dd)
两者都返回:
'data.frame': 10 obs. of 1 variable:
$ a: num 1.623 -0.178 0.988 -0.406 -0.554 ...
有人知道如何将列转换为命名数字吗?
谢谢
答案 0 :(得分:1)
这是我能想到的。
首先创建矢量,然后dput
将其执行到structure
指令中,以创建数据帧。
set.seed(1234)
vec <- rnorm(10)
names(vec) <- letters[1:10]
n <- length(vec)
dd <- structure(list(a = dput(vec)),
class = "data.frame", row.names = c(NA, n))
str(dd)
#'data.frame': 10 obs. of 1 variable:
# $ a: Named num -1.207 0.277 1.084 -2.346 0.429 ...
# ..- attr(*, "names")= chr "a" "b" "c" "d" ...