You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从含对应国家的城市列表中随机抽样并生成对应变量?

R实现城市随机抽样及对应国家匹配

步骤1:将列表转换为结构化数据框

原列表按国家分组存储城市,先把它转为包含「城市」和「国家」的二维数据框,方便后续抽样与匹配:

# 定义原始列表
city_list <- list(Spain = c("Barcelona", "Madrid"), 
                  Austria = c("Vienna", "Salzburg"), 
                  France = c("Paris", "Lyon"), 
                  Italy = c("Milano", "Roma"))

# 转换为数据框,重命名列名更直观
city_df <- stack(city_list)
colnames(city_df) <- c("City", "Country")

步骤2:随机抽样并提取对应变量

用sample()函数实现随机抽样,再同步提取城市与对应国家:

示例1:随机抽取1个城市

# 随机选1行的索引
sample_idx <- sample(nrow(city_df), 1)

# 提取抽样结果
selected_city <- city_df$City[sample_idx]
selected_country <- city_df$Country[sample_idx]

# 输出结果
cat("抽取的城市:", selected_city, "\n对应的国家:", selected_country)

示例2:随机抽取多个城市(以2个为例)

# 随机选2个不重复的行
sample_idx <- sample(nrow(city_df), 2)

# 生成包含抽样结果的变量
sampled_data <- city_df[sample_idx, ]

# 查看结果
sampled_data

补充:生成类似cbind的矩阵结果

如果需要直接输出示例中cbind的矩阵格式,可这样写:

# 抽取2个城市并转换为矩阵
sampled_rows <- city_df[sample(nrow(city_df), 2), ]
result_matrix <- cbind(Country = sampled_rows$Country, City = sampled_rows$City)
result_matrix

内容的提问来源于stack exchange,提问作者carphunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:40:25