这个问题与之前的问题相关,但那里的答案(使用c()函数)正是对我不起作用的。
首先,我创建一个向量列表,然后创建一个附加向量。
a_list <- lapply(mtcars, as.integer)
junk <- c(1:length(a_list[[1]]))
Run Code Online (Sandbox Code Playgroud)
现在,如果使用c(a_list, junk)(如前面问题的答案中所建议的那样),我会得到一个与我所说的完全不同的答案a_list[["junk"]] <- junk(后者产生所需的结果)。似乎前一种方法添加的是as.list(junk).
如何添加junkusingc()而不将其转换为 的结果as.list(junk)?
使用list()方法如下:c(a_list, junk=list(junk)).
在尝试准确计算出上面有问题的场景中添加的内容(以更好地阐述我的问题)时,我意识到这一点list并as.list做了非常不同的事情。通过将垃圾变成单元素列表(使用list()),它会以所需的方式“按原样”添加。
实际上,这被埋藏在对 Dirk Eddelbuettel 的答案的“显示更多评论”评论中,并且(更尴尬的是)本身的帮助中c()。引用帮助:
## do *not* use
c(ll, d = 1:3) # which is == c(ll, as.list(c(d = 1:3))
## but rather
c(ll, d = list(1:3)) # c() combining two lists
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10124 次 |
| 最近记录: |