从R

时间:2017-07-11 01:13:51

标签: r dataframe null

我想要将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个对象,我会丢失对象的名称并获得奇怪的列名。

感谢您的帮助!

1 个答案:

答案 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