R语言 从列表值和对应名称中随机抽样

aelbi1ox  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(147)

我想做的是从列表值中随机抽样(在本例中是城市),并从该样本创建一个变量,同样根据随机选择的城市,另一个变量(国家)应包含与该观察的城市对应的国家。

list <- list(Spain = c("Barcelona", "Madrid"), Austria = c("Vienna", "Salzburg"), 
             France = c("Paris", "Lyon"), Italy = c("Milano", "Roma"))

cbind(Country = c("Italy", "Spain"), City = c("Roma", "Madrid"))
xytpbqjk

xytpbqjk1#

下面是一个使用data.table的解决方案。第一部分制作一个包含整个数据集的姓名和国家的数据表,第二部分随机抽取两行。

library(data.table)

dt <- lapply(list, data.frame) |> 
  rbindlist(idcol = "Country") |> 
  setnames(new=c("Country","City"))

dt[sample(.N,2)]

   Country   City
1: Austria Vienna
2:   Italy Milano

相关问题