我想要将n个对象组合在一起作为1行x列数据帧。但是,某些对象可能是NULL
或空字符串,我希望对象的名称成为数据帧的名称。
所以,如果我有
a <- 1
b <- 2
c <- 3
d <- NULL
e <- 'text'
f <- character(0)
我想做点什么:
mydf <- data.frame(a, b, c, d, e)
并在创建数据框时删除NULL
值:
> mydf
a b c e
1 1 2 3 text
但是,如果我使用NULL
个对象和空字符串进行尝试,我会收到以下错误:
Error in data.frame(a, b, c, d, e) :
arguments imply differing number of rows: 1, 0
如果我编写某种函数来过滤掉NULL
个对象,我会丢失对象的名称并获得奇怪的列名。
感谢您的帮助!
答案 0 :(得分:2)
试试这个:
false
另请注意,矩阵L <- list(a = a, b = b, c = c, d = d, e = e, f = f)
DF <- as.data.frame(matrix(L, 1, dimnames = list(NULL, names(L))))
DF
## a b c d e f
## 1 1 2 3 NULL text
str(DF)
## 'data.frame': 1 obs. of 6 variables:
## $ a:List of 1
## ..$ a: num 1
## $ b:List of 1
## ..$ b: num 2
## $ c:List of 1
## ..$ c: num 3
## $ d:List of 1
## ..$ d: NULL
## $ e:List of 1
## ..$ e: chr "text"
## $ f:List of 1
## ..$ f: chr
如下所示:
m