从数据框内的单个变量中拆分多个值

时间:2015-06-16 08:17:20

标签: r dataframe

我有this page,其中包含单个变量的几个值(Problemas.habituales)(见下文)

> read.csv("http://pastebin.com/raw.php?i=gnWRqJnY")
  Nombre.barrio                             Problemas.habituales
1         Actur Robos con violencia, Agresiones, Otros problemas
2         Actur                                  Ningún problema
3        Centro                  Robos con violencia, Agresiones
4     San Pablo                                  Ningún problema
5     San Pablo                                  Ningún problema
6      Delicias                     Hurtos o robos sin violencia

这种结构的原因是我创建了一个在线问卷,它接受同一个问题的多个答案,但数据的存储方式是一个问题,因为没有办法创建一个显示每个社区内所有常见问题的条形图操纵数据帧。

不幸的是我不知道如何操作数据帧(我需要它在数据帧上,因为我需要稍后使用ggplot2,它不接受数据表),每行包含一个值变量“Problemas.habituales”。

2 个答案:

答案 0 :(得分:3)

library(data.table)
DF <- fread("http://pastebin.com/raw.php?i=gnWRqJnY")
setnames(DF, make.names(names(DF)))
DF <- DF[, .(Problemas.habituales = unlist(strsplit(Problemas.habituales, ",", 
                                                    fixed = TRUE))), by = Nombre.barrio]
setDF(DF)

(我假设你没有看到你的语言环境的编码问题。)

答案 1 :(得分:2)

您可以使用splitstackshape

执行此操作
library(splitstackshape)
cSplit(DF, "Problemas habituales", ",", direction = "long")

#   Nombre barrio         Problemas habituales
#1:         Actur          Robos con violencia
#2:         Actur                   Agresiones
#3:         Actur              Otros problemas
#4:         Actur              Ningún problema
#5:        Centro          Robos con violencia
#6:        Centro                   Agresiones
#7:     San Pablo              Ningún problema
#8:     San Pablo              Ningún problema
#9:      Delicias Hurtos o robos sin violencia