如何解决给定R中另一个向量的负数位置,替换列
A<-matrix(c(1,2,1,1),nrow=3,ncol=3)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 2 1 1
[3,] 1 2 1
B<-c(1,-1)
例如,我想用所有NA替换所有第三列,因为B中的第三个元素为负数。 我在想像这样的东西
NegNum<-length(B[B<0])
A[,tail(NegNum)]<-NA
负数始终位于B的最后n个位置,因此我尝试使用tail,但不确定其工作原理。
解决方法
我建议根据List<List<string>> myList = new List<List<string>>();
myList.Add(new List<string> { "a","b","" });
myList.Add(new List<string> { "","c","" });
myList.Add(new List<string> { "d","","" });
myList.Add(new List<string> { "e","f" });
编制索引:
B
输出:
#Matrix 1
A<-matrix(c(1,2,1,1),nrow=3,ncol=3)
#Vector
B<-c(1,-1)
#Solution
A[,which(B<0)]<-NA
,
这是另一个基本的R选项
A %*% diag(replace(B,B < 0,NA))
或
replace(A,cbind(seq(nrow(A)),rep(which(B<0),nrow(A))),NA)
给出
[,1] [,2] [,3]
[1,] 1 1 NA
[2,] 2 1 NA
[3,] 1 2 NA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。