2013-10-03 36 views
1

什麼是拆分數據框內容的最簡單方法,以便每個字符都可以與其他任何字符分開(我認爲這意味着像strsplit這樣的東西不會工作)。每個字符在數據框中拆分單元格內容

說我有

> da 
    V1 V2 V3   V4 V5 V6 V7  V8 V9 V10 V11 V12 V13 V14 
1 TNVERI SMH EG ZSMRNPMUD: M SLRN PYMP VERRNVPT M ZSMRNP PE PYN TQR THNNZT 
V15 V16 V17 V18 V19 V20 
1 EQP NXQMS MUNMT LR NXQMS PLKNT 
> dput(da) 
structure(list(V1 = "TNVERI", V2 = "SMH", V3 = "EG", V4 = "ZSMRNPMUD:", 
V5 = "M", V6 = "SLRN", V7 = "PYMP", V8 = "VERRNVPT", V9 = "M", 
V10 = "ZSMRNP", V11 = "PE", V12 = "PYN", V13 = "TQR", V14 = "THNNZT", 
V15 = "EQP", V16 = "NXQMS", V17 = "MUNMT", V18 = "LR", V19 = "NXQMS", 
V20 = "PLKNT"), .Names = c("V1", "V2", "V3", "V4", "V5", 
"V6", "V7", "V8", "V9", "V10", "V11", "V12", "V13", "V14", "V15", 
"V16", "V17", "V18", "V19", "V20"), class = "data.frame", row.names = c(NA, 
-1L)) 

而且我想算的每一個字母/字符出現的頻率,無論是在文字或沒有。任何語言的解決方案都很好。

獎勵:這是一個加密難題。如果有人想看看他們是否可以弄清楚這是用英語說的,那麼就展示你的作品!

+0

所以對於第一部分,你正在尋找的字符,這將是一個矢量:C(「T」,「N」, 'V', 'E', 'R', 'I', 'S',..., 'N', 'T')?然後每個字母的頻率? – jpd527

+0

這個問題本身就是一種「加密」的我...我不明白你有什麼,你想得到什麼.... :( – Kent

+1

解決了難題,我顯然是第1156人這樣做。鏈接到這個難題在這裏:http://blog.physicsworld.com/2013/10/03/physics-world-at-25-puzzle-1/ – TLP

回答

3

strsplit會做工精細,如果我正確地理解你的問題:

table(unlist(lapply(da, strsplit, ""), use.names = FALSE)) 
# 
# : D E G H I K L M N P Q R S T U V X Y Z 
# 1 1 5 1 2 1 1 3 11 12 9 4 8 6 7 2 3 2 2 3 
+0

我喜歡這個。當我看到它時簡單!謝謝。我會的時候會被接受。 – cianius

相關問題