R、 从行和列中提取重复的值,然后从二进制转换为整数

R、 从行和列中提取重复的值,然后从二进制转换为整数,r,binary,extract,tostring,R,Binary,Extract,Tostring,我在R中有一个表(无标题): 111001110000101 我想做的是从每一行和每一列中提取连续的1,然后用这些1生成一个字符串,最后将字符串从二进制转换成整数 例如,假设我从第1行->第1行中提取连续的1,然后从这些1中生成一个字符串,最后将这个二进制值的字符串转换为n整数,结果应该是7 谢谢。如果你可以假设你只有连续的1,而其他地方没有1,你可以这样做: 2 ^ rowSums(tab) - 1 例如: tab <- as.table(matrix(c(1,1,1,0,0,1,1,

我在R中有一个表(无标题):

11100
11100
00101

我想做的是从每一行和每一列中提取连续的1,然后用这些1生成一个字符串,最后将字符串从二进制转换成整数

例如,假设我从第1行->第1行中提取连续的1,然后从这些1中生成一个字符串,最后将这个二进制值的字符串转换为n整数,结果应该是7


谢谢。

如果你可以假设你只有连续的1,而其他地方没有1,你可以这样做:

2 ^ rowSums(tab) - 1
例如:

tab <- as.table(matrix(c(1,1,1,0,0,1,1,1,0,0,0,0,0,1,1), nrow = 3, byrow = T))
2 ^ rowSums(tab) - 1
# A B C
# 7 7 3
那么这个例子就是

tab <- as.table(matrix(c(0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1), nrow = 3, byrow = T))

#   A B C D E F
# A 0 1 1 1 0 0
# B 0 1 1 1 0 0
# C 0 0 0 0 1 1 
这对你来说是一个有用的起点。
tab <- as.table(matrix(c(0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1), nrow = 3, byrow = T))

#   A B C D E F
# A 0 1 1 1 0 0
# B 0 1 1 1 0 0
# C 0 0 0 0 1 1 
# A B C
# 7 7 3