Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 用于将NA添加到列表的Ifelse语句_R - Fatal编程技术网

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,
长度