所以,我试图将每个字符串转换为字符串,
mylist
# [[1]]
# [1] "abc" "000"
#
# [[2]]
# [1] "a00" "ac0" "bcc"
....................
现在,我正在尝试应用函数
mylist <- lapply(mylist, matrix, nrow=1) # convert each string to matrix
但这显示错误,
FUN错误(X [[202L]],...):&#39;数据&#39;必须是矢量类型,是&#39; NULL&#39;`。
适用于仅包含1's
和0's
但不使用字符的字符串
答案 0 :(得分:2)
当至少有一个索引缺少列表元素或空白列表元素时,会发生此错误。我们可以通过故意创建一个包含空元素的列表来重新创建此错误:
mylist <- list(c("abc","000"),
c("a00","ac0","bcc"),
c(),
c("a00","ac0","bcc"))
lapply(mylist, matrix, nrow=1)
FUN中的错误(X [[i]],...):'data'必须是矢量类型,是 'NULL'
要解决上述错误,我们可以通过运行代码来删除列表中的空白元素,这些代码通过长度大于零的元素对列表进行子集,如下所示:
mylist <- mylist[lapply(mylist,length)>0]
现在列表中没有任何空元素,我们可以重新运行lapply(mylist,matrix,nrow = 1),这会成功地将每个元素转换为矩阵格式。
lapply(mylist, matrix, nrow=1)
[[1]]
[,1] [,2]
[1,] "abc" "000"
[[2]]
[,1] [,2] [,3]
[1,] "a00" "ac0" "bcc"
[[3]]
[,1] [,2] [,3]
[1,] "a00" "ac0" "bcc"