我有一个嵌套列表,看起来像这样:
characlist<-list(list(c(1,2,3,4)),c(1,3,2,NA))
Run Code Online (Sandbox Code Playgroud)
接下来,我想用NA替换所有等于1的值.我尝试了以下,但它产生了一个错误:
lapply(characlist,function(x) ifelse(x==1,NA,x))
Error in ifelse(x == 1, NA, x) :
(list) object cannot be coerced to type 'double'
Run Code Online (Sandbox Code Playgroud)
有人能告诉我代码有什么问题吗?
我有一个矩阵,看起来像这样:
have=rbind(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3),ncol=3),c(5,5,5),c(5,5,5),c(5,5,5),c(1,1,1),c(1,1,1))
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 3
[3,] 1 2 3
[4,] 1 2 3
[5,] 5 5 5
[6,] 5 5 5
[7,] 5 5 5
[8,] 1 1 1
[9,] 1 1 1
Run Code Online (Sandbox Code Playgroud)
我想删除行,如果他们只出现1或2次.理想情况下,我希望它是用户特定的,因此如果该行仅出现N次或更少,则应删除它.所以,如果N = 2那么它应该删除最后两行,因为它们只出现两次:
want=rbind(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3),ncol=3),c(5,5,5),c(5,5,5),c(5,5,5))
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 3
[3,] 1 2 3
[4,] 1 2 3
[5,] 5 5 5
[6,] 5 5 5
[7,] 5 5 5
Run Code Online (Sandbox Code Playgroud)
另一方面,如果N = 3,那么它应该返回:
want_2=rbind(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3),ncol=3)) …
Run Code Online (Sandbox Code Playgroud)