R 向数据中添加列。将行均匀分配给列表中的值的框架
我有一个数据框架,每一排都是一个家庭,我有一份采访者名单。其目的是将采访者分配到各个家庭,每个采访者应获得每个城市相同数量的家庭。比如说,R 向数据中添加列。将行均匀分配给列表中的值的框架,r,dataframe,tidyverse,R,Dataframe,Tidyverse,我有一个数据框架,每一排都是一个家庭,我有一份采访者名单。其目的是将采访者分配到各个家庭,每个采访者应获得每个城市相同数量的家庭。比如说, example <- data.frame(city = c("Los Angeles", "Los Angeles", "Los Angeles", "San Diego", "San Diego&
example <- data.frame(city = c("Los Angeles", "Los Angeles", "Los Angeles",
"San Diego", "San Diego", "San Diego", "San Diego", "San Diego",
"Santa Barbara", "Santa Barbara", "Santa Barbara", "Santa Barbara", "Santa Barbara"),
household_id = seq(1, 13))
interviewer <- c("A", "B", "C")
示例您可以尝试使用rep
为每个城市重复采访者
library(dplyr)
example %>%
group_by(city) %>%
mutate(interviewer = rep(interviewer, length.out = n()))
# city household_id interviewer
# <chr> <int> <chr>
# 1 Los Angeles 1 A
# 2 Los Angeles 2 B
# 3 Los Angeles 3 C
# 4 San Diego 4 A
# 5 San Diego 5 B
# 6 San Diego 6 C
# 7 San Diego 7 A
# 8 San Diego 8 B
# 9 Santa Barbara 9 A
#10 Santa Barbara 10 B
#11 Santa Barbara 11 C
#12 Santa Barbara 12 A
#13 Santa Barbara 13 B
库(dplyr)
示例%>%
组别(城市)%>%
变异(面试官=代表(面试官,length.out=n())
#城市住户身份证面试官
#
#洛杉矶一号甲
#洛杉矶2号乙
#3洛杉矶3 C
#4圣地亚哥4A
#5圣地亚哥5B
#6圣地亚哥6 C
#7圣地亚哥7 A
#8圣地亚哥8B
#9圣巴巴拉9 A
#10圣巴巴拉10 B
#11圣巴巴拉11 C
#12圣巴巴拉12 A
#13圣巴巴拉13 B
您可以尝试使用rep
为每个城市重复采访者
library(dplyr)
example %>%
group_by(city) %>%
mutate(interviewer = rep(interviewer, length.out = n()))
# city household_id interviewer
# <chr> <int> <chr>
# 1 Los Angeles 1 A
# 2 Los Angeles 2 B
# 3 Los Angeles 3 C
# 4 San Diego 4 A
# 5 San Diego 5 B
# 6 San Diego 6 C
# 7 San Diego 7 A
# 8 San Diego 8 B
# 9 Santa Barbara 9 A
#10 Santa Barbara 10 B
#11 Santa Barbara 11 C
#12 Santa Barbara 12 A
#13 Santa Barbara 13 B
库(dplyr)
示例%>%
组别(城市)%>%
变异(面试官=代表(面试官,length.out=n())
#城市住户身份证面试官
#
#洛杉矶一号甲
#洛杉矶2号乙
#3洛杉矶3 C
#4圣地亚哥4A
#5圣地亚哥5B
#6圣地亚哥6 C
#7圣地亚哥7 A
#8圣地亚哥8B
#9圣巴巴拉9 A
#10圣巴巴拉10 B
#11圣巴巴拉11 C
#12圣巴巴拉12 A
#13圣巴巴拉13 B
谢谢!这太优雅了!我不知道有一场旷日持久的争论,谢谢!这太优雅了!我不知道有一场旷日持久的争论。