矩阵:
A B
0 1
0 0
1 0
我有一个设计矩阵,我的前两列是'A','B'填充0和1我需要将这两列替换为总结两者的一列,即。在一个新的总体列中,1将位于A和B中的任何一个为1且0为0的位置。
我的尝试如下:
x <- vector("list", length(my_mat)) #empty vector
for(i in 1:length(design[2])) #fill vector with column content
ifelse(attempt[ ,1]==1|attempt[ ,2]==1, x[i]<-design[i], x[i]<-0) #in event that either A or B is 1 give x vector a 1 other wise give it a 0
as.matrix(x)
my_mat<-my_mat[ ,-c(1,2)] #get rid of first two columns
my_mat<-cbind(my_mat, x) #summarise first two columns by binding the other new one
我的问题是我得到的矢量充满了NULL值,所以我做错了,因为它应该只是制作一个0和1的向量
注意我希望能够访问带有“$”注释的列但是我收到以下错误,因为原始数据不是数据框: 设计错误$ Culture_confirmed_TB: $运算符对原子向量无效
答案 0 :(得分:1)
如果原始数据是
tab <- data.frame(A = c(0L, 0L, 1L), B = c(1L, 0L, 0L))
然后添加新列可以这样实现:
tab$C <- (tab$A | tab$B) + 0
tab
# A B C
# 1 0 1 1
# 2 0 0 0
# 3 1 0 1
如果数据是matrix
,
M <- cbind(A = c(0L, 0L, 1L), B = c(1L, 0L, 0L))
然后可以像这样添加新列
M <- cbind(M, C = M[,1] | M[,2])