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

基于R语言DataFrame生成含Amenities与Name列的新数据集

R语言转换DataFrame生成指定列的解决方案

现有如下R语言DataFrame:

df<-structure(list(state = c("West Bengal", "West Bengal", "West Bengal", 
"West Bengal", "West Bengal"), nn_hospital = c("Khundkuri Hospital", 
"Khundkuri Hospital", "Mankar Rural Hospital", "Khundkuri Hospital", 
"Khundkuri Hospital"), distance_nn_hospital = c(8949.68646563084, 
17217.1419457099, 16939.2318150416, 15812.9872649418, 1408.372117616
), nn_bank = c("contai", "contai", "Allahabad Bank", "contai", 
"contai"), distance_nn_bank = c(13959.9950089655, 20598.4763042432, 
19688.6296071566, 20537.3799009137, 11385.8738290783)), class = "data.frame", row.names = c(NA, 
5L))

需要生成仅包含Amenities和Name两列的新DataFrame:

  • Amenities列取值为"nn_bank"或"nn_hospital"
  • Name列对应原DataFrame中nn_bank或nn_hospital列的具体名称

方法一:使用tidyr包(推荐)

借助tidyr的pivot_longer函数快速实现宽表转长表,筛选出目标列:

# 若未安装tidyr包,先执行安装
# install.packages("tidyr")
library(tidyr)

# 转换并提取目标列
new_df <- df %>%
  pivot_longer(
    cols = c(nn_hospital, nn_bank),  # 指定要转换的列
    names_to = "Amenities",          # 原列名存入Amenities列
    values_to = "Name"               # 原列值存入Name列
  ) %>%
  select(Amenities, Name)            # 只保留目标两列

# 查看结果
print(new_df)

方法二:Base R实现(无需额外包)

通过手动构建子数据框再合并的方式实现:

# 构建医院相关数据框
hospital_df <- data.frame(
  Amenities = rep("nn_hospital", nrow(df)),
  Name = df$nn_hospital
)

# 构建银行相关数据框
bank_df <- data.frame(
  Amenities = rep("nn_bank", nrow(df)),
  Name = df$nn_bank
)

# 合并两个数据框
new_df <- rbind(hospital_df, bank_df)

# 查看结果
print(new_df)

两种方法最终得到的new_df结构完全符合需求,示例输出如下:

Amenities               Name
1 nn_hospital Khundkuri Hospital
2 nn_hospital Khundkuri Hospital
3 nn_hospital Mankar Rural Hospital
4 nn_hospital Khundkuri Hospital
5 nn_hospital Khundkuri Hospital
6    nn_bank              contai
7    nn_bank              contai
8    nn_bank      Allahabad Bank
9    nn_bank              contai
10   nn_bank              contai

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:42:51