我想制作一个空数据帧df(0行),
有两个列名:“A”和“B”。
这是一个简单的例子。可能有数百个列名...
(稍后将添加行数,值为0到1 - 即:0.80 0.20)。
首先会展示我拥有的(工作正常),
然后我需要什么,(但不知道该怎么做!)。
这就是我所拥有的并且它的工作正常:
df< - data.frame(“A”= numeric(),“B”= numeric(), stringsAsFactors = FALSE)
DF
[1] A B
< 0行> (或0长度的row.names)
但是,
我需要定义列名:
“A”和“B”
外部和之前致电:
df< - data.frame(...)。
像这样:
colnames < - c(“A”“B”)
df< - data.frame( colnames ,stringsAsFactors = FALSE)df
colnames
1 A
2 B
错误的df!...我需要的是:
(模拟需要的空df,就像上面的第一个例子一样)
DF
[1] A B
< 0行> (或0长度的row.names)
如何在 colnames 中指定列名称
之前生成空数据帧df?
谢谢!
答案 0 :(得分:1)
这只是一种解决方法,但应该对您有用:
colnames <- c("A","B")
l <- list()
l[[ colnames[1] ]] <- NA
l[[ colnames[2] ]] <- NA
df <- as.data.frame(l)
df <- df[ -1, ]
> str(df)
[1] A B
<0 rows> (or row.names with length 0)
更短的版本如下:
colnames <- c("A","B")
d <- c(NA,NA)
names(d) <- colnames
df <- data.frame(rbind(d))[-1,]
玩得开心!
答案 1 :(得分:0)
由于OP要求一个简短的方法来执行此操作,因此这里是一个单行(在先前已定义的名称之后),它返回一个零行数据框和所需的列名称。
colnames <- c('A', 'B')
df <- setNames(as.data.frame(matrix(nrow = 0, ncol = 2)), nm = colnames)