【问题标题】:Split contents of cells in dataframe by every character按每个字符拆分数据框中单元格的内容
【发布时间】:2013-10-10 10:40:29
【问题描述】:

分割数据帧内容的最简单方法是什么,以便每个字符都可以相互分离(我认为这意味着 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))

我想计算每个字母/字符出现的频率,无论是否在一个单词中。任何语言的解决方案都可以。

奖励:这是一个密码学难题。如果有人想看看他们是否能弄清楚这用英语怎么说,那就展示你的作品吧!

【问题讨论】:

  • 所以对于第一部分,您正在寻找一个字符向量:c('T','N','V','E','R','I ','S',...,'N','T')?然后是每个字母的频率?
  • 这个问题本身对我来说有点“加密”...我不明白你有什么以及你想得到什么......:(
  • 解决了这个难题。我显然是第 1156 个这样做的人。谜题链接在这里:blog.physicsworld.com/2013/10/03/physics-world-at-25-puzzle-1

标签: python r perl awk


【解决方案1】:

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 

【讨论】:

  • 我喜欢这个。使用 apply 拆分所有内容...当我看到它时看起来很简单!谢谢。我会尽可能接受。
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-01-17
  • 2014-12-19
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
相关资源
最近更新 更多