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

在R语言中如何提取单列数据中Orange对应的数值?

问题描述

我有一个名为test的数据集,其结构如下:

dput(test)
structure(list(Data = c("Apple", "3", "Orange", "4", "Grape", 
"2", "Orange", "5", "Grape", "1", "Orange", "4")), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -12L))

该数据集仅有一列Data,包含水果名称和对应数字。我希望提取所有Orange对应的数字,并整理为如下格式的输出:

Data  

Orange1
  4         
Orange2
  5     
Orange3
  4     
解决方案

可以使用R语言结合dplyr和tidyr包来实现需求,步骤如下:

首先加载所需包:

library(dplyr)
library(tidyr)
  1. 重构数据集,将水果名和对应数字拆分为单独的列:
processed <- test %>%
  # 每2行分为一组(水果行+数字行)
  mutate(group = ceiling(row_number() / 2)) %>%
  # 转换为宽表,拆分出水果名与数值列
  pivot_wider(names_from = (row_number() %% 2 == 1), 
              values_from = Data, 
              names = c("num", "fruit")) %>%
  # 调整列顺序,确保水果名列在前
  select(fruit, num)
  1. 筛选Orange相关记录并添加序号后缀:
orange_data <- processed %>%
  filter(fruit == "Orange") %>%
  mutate(fruit_label = paste0(fruit, row_number()))
  1. 转换为目标格式并输出:
final_result <- data.frame(Data = c(rbind(orange_data$fruit_label, orange_data$num)))
# 打印结果时隐藏行名
print(final_result, row.names = FALSE)

执行上述代码后,即可得到你需要的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:00:49