我有一个包含如下字段的data.frame:
:6:Description_C
:3:Description_A:2:Description_B:1:Description_C
:2:Description_C:1:Description_B:1:Description_A:1:Description_D:1:Description_E
:3:Description_B:3:Description_A
前面的数字(由冒号包围)是总数为6的次数,在data.frame中的该条目中可以看到描述。如果有:6:Description_X
表示所有6个计数都用于该描述,如果不是,则将其拆分为不同的计数,彼此相邻。
我想将此字段转换为每个描述的计数数量的键/值哈希,以便我可以对所有计数的总比例进行条形图,但也可以用我可以绘制这些的方式比例与data.frame中的其他因素结合使用。
编辑:看一下colsplit的文档,人们会告诉我的可能是我需要为每个描述添加一个新列,因为我总共只有大约8个描述。但是,还没弄明白怎么做。我怎么能在R?中做到这一点?
答案 0 :(得分:1)
我不确定你想要“key:value hash”的结构,但这会提取字符串及其相关的数字代表:
inp <- readLines(textConnection(
":6:Description_C
:3:Description_A:2:Description_B:1:Description_C
:2:Description_C:1:Description_B:1:Description_A:1:Description_D:1:Description_E
:3:Description_B:3:Description_A")
)
inp2 <- sapply( strsplit(inp, ":"), "[", -1) # drop the leading empty strings
reps <- lapply(inp2, function(x) as.numeric(x[ seq( 1, length(x) , by=2)]))
values <- lapply(inp2, function(x) x[ seq( 2, length(x) , by=2)])
lapply(reps, barplot) # Probably needs to work but this demonstrates feasibility