我正在用R进行编码,并且有一个用于以下区域的数据框:
data <- data.frame(Region = c("Cali", "NYC", "LA", "Vegas"),
Group = c(1,2,2,1), stringsAsFactors = F)
该地区已组成一个小组。组列告诉哪些区域是组的一部分。我如何编码,当我有了组信息时,就可以找到构成该组的区域。任何帮助都非常感谢。
答案 0 :(得分:1)
因此,举一个小而可重复的示例,
data <- data.frame(Region = c("Cali", "NYC", "LA", "Vegas"), Group = c(1,2,2,1),stringsAsFactors=F)
我们看到以下结果,说我们希望全部来自组1
group.number = 1
data[data$Group == group.number,"Region"]
[1] Cali Vegas
或使用dpyr
library(dplyr)
group.number = 1
data %>%
filter(Group == group.number)%>%
.$Region
或者来自Jilber Urbina(可读性更高)
subset(data, Group==1)$Region
答案 1 :(得分:1)
最重要的是,对于以后的帖子,请
dput
关于您的问题,首先我将生成一些示例数据
set.seed(2018)
df <- data.frame(
Region = sample(letters, 10),
Group = sample(1:3, 10, replace = T))
我建议按Group
汇总/汇总数据,这样可以轻松提取特定Group
的信息。
例如,在基数R中,您可以基于Group
聚合数据,并将每个Region
的所有Group
连接起来
aggregate(Region ~ Group, data = df, FUN = toString)
# Group Region
#1 1 m
#2 2 i, l, g, c
#3 3 b, e, k, r, j
或者,您也可以将每个Region
的所有Group
存储在list
aggregate(Region ~ Group, data = df, FUN = list)
# Group Region
#1 1 m
#2 2 i, l, g, c
#3 3 b, e, k, r, j
请注意,尽管输出看起来相同,但是toString
创建一个character
字符串,而list
将Region
存储在list
中。后者可能是下游处理的更好格式。
使用dplyr
library(dplyr)
df %>%
group_by(Group) %>%
summarise(Region = toString(Region))