R 用于将NA添加到列表的Ifelse语句
由于字符串中的值数量不同,因此我将列表转换为数组以进行进一步分析时遇到了一个问题:R 用于将NA添加到列表的Ifelse语句,r,R,由于字符串中的值数量不同,因此我将列表转换为数组以进行进一步分析时遇到了一个问题: [[1]] [1] 35 61 [[2]] [1] 2 11 13 [[3]] [1] 10 15 35 [[4]] [1] 35 44 78 [[5]] [1] 22 86 101 由于某些字符串中有2个整数,而其他字符串中有3个整数,因此无法将其转换为数组 最后,我想创建一个ifelse语句,当列表中只有两个整数时,在列表中插入一个NA 以下是我的发言: length = length(list_i1
[[1]]
[1] 35 61
[[2]]
[1] 2 11 13
[[3]]
[1] 10 15 35
[[4]]
[1] 35 44 78
[[5]]
[1] 22 86 101
由于某些字符串中有2个整数,而其他字符串中有3个整数,因此无法将其转换为数组
最后,我想创建一个ifelse
语句,当列表中只有两个整数时,在列表中插入一个NA
以下是我的发言:
length = length(list_i1)
list_i1 = ifelse(list_i1[[1:length]][3] != 0:Inf,
list_i1[[1:length]][3] == "NA",
list_i1[[1:length]][3] == list_i1[[1:length]][3])
它正在返回:列表中的错误\u i1[[1:length]]:递归索引在级别2失败
t(sapply(list_i1,`length<-`,max(lengths(list_i1))))
[,1] [,2] [,3]
[1,] 35 61 NA
[2,] 2 11 13
[3,] 10 15 35
[4,] 35 44 78
[5,] 22 86 101
ex <- list(c(35, 61), c(2, 11, 13), c(10, 15, 35), c(35, 44, 78), c(22, 86, 101))
max_len <- max(lengths(ex))
mapply(function(x, y) c(x, rep(NA, max_len - y)), ex, lengths(ex))
# [,1] [,2] [,3] [,4] [,5]
# [1,] 35 2 10 35 22
# [2,] 61 11 15 44 86
# [3,] NA 13 35 78 101
ex尝试以下方法
ex <- list(c(35, 61), c(2, 11, 13), c(10, 15, 35), c(35, 44, 78), c(22, 86, 101))
max_len <- max(lengths(ex))
mapply(function(x, y) c(x, rep(NA, max_len - y)), ex, lengths(ex))
# [,1] [,2] [,3] [,4] [,5]
# [1,] 35 2 10 35 22
# [2,] 61 11 15 44 86
# [3,] NA 13 35 78 101
ex我们可以从stringi
library(stringi)
m1 <- stri_list2matrix(ex, byrow = TRUE)
`dim<-`(as.numeric(m1), dim(m1))
# [,1] [,2] [,3]
#[1,] 35 61 NA
#[2,] 2 11 13
#[3,] 10 15 35
#[4,] 35 44 78
#[5,] 22 86 101
库(stringi)
m1我们可以从stringi
library(stringi)
m1 <- stri_list2matrix(ex, byrow = TRUE)
`dim<-`(as.numeric(m1), dim(m1))
# [,1] [,2] [,3]
#[1,] 35 61 NA
#[2,] 2 11 13
#[3,] 10 15 35
#[4,] 35 44 78
#[5,] 22 86 101
库(stringi)
m1这与你之前的问题有什么不同:?出于各种原因,我希望使用ifelse语句,而不是类似于:list_i1=t(sappy)(list_i1,length)的语句这与你之前的问题有什么不同:?出于各种原因,我希望使用ifelse语句,而不是类似于:list_i1=t(sappy)的语句(列表_i1,长度