我遇到問題。向量中出現一對的次數爲
我有一個向量,它由0或1組成 - 例如(011011111011100001111)。在R我需要弄清楚,如何計算向量中出現了多少次1,3,1,4,1等等。在這個例子中矢量我有1次11,1次111,1次1111倍和1倍11111
非常感謝,彼得
我遇到問題。向量中出現一對的次數爲
我有一個向量,它由0或1組成 - 例如(011011111011100001111)。在R我需要弄清楚,如何計算向量中出現了多少次1,3,1,4,1等等。在這個例子中矢量我有1次11,1次111,1次1111倍和1倍11111
非常感謝,彼得
我假設你有一個像c(0, 1, 1, 0...)
的實際載體。
以下是使用table
和rle
的解決方案。我還提供了一些更長的樣本數據,使其更有趣。
set.seed(1)
myvec <- sample(c(0, 1), 100, replace = TRUE)
temp <- rle(myvec)
table(temp$lengths[temp$values == 1])
#
# 1 2 3 4 6
# 15 8 1 2 1
事實上,如果你正在處理1和0的瘋狂長的字符串,只需使用strsplit
並按照相同的邏輯之上。
myvec <- "00110111100010101101101000001001001110101111110011010000011010001001"
myvec <- as.numeric(strsplit(myvec, "")[[1]])
在這裏,我已經轉換爲數字,但這就是所以你可以使用相同的代碼。你也可以在角色矢量上使用rle
。
rle
是你的朋友:
vec <-c(0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1)
res <-data.frame(table(rle(vec)))
res[res$values==1,]
lengths values Freq
6 1 1 0
7 2 1 1
8 3 1 1
9 4 1 1
10 5 1 1
感謝很多答案,但我仍然不知道該怎麼做我自己....以前我要求幫助一個載體,我想我將能夠在矩陣上做到這一點......但我不是......所以我再次問一次......如果我已經平方矩陣它現在會如何工作? ...再次我需要數字11,但在這個矩陣的每個對角線.... –