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

R语言中删除每行首个"c"前单元格并生成新DataFrame

R语言实现:删除每行第一个"c"之前的单元格

首先构造示例数据框:

df <- data.frame(
  col1 = c("a", "c", "b"),
  col2 = c("b", "3", "c"),
  col3 = c("c", "4", "5"),
  col4 = c(1, "c", 6),
  col5 = c(2, 1, "c"),
  col6 = c("c", NA, 1),
  col7 = c(1, NA, NA),
  stringsAsFactors = FALSE
)

核心实现代码

# 定义每行处理函数
process_row <- function(row) {
  # 定位该行第一个"c"的位置
  first_c_idx <- which(row == "c")[1]
  
  # 处理无"c"的情况(返回5个NA)
  if (is.na(first_c_idx)) {
    return(rep(NA, 5))
  }
  
  # 截取从第一个"c"开始的所有元素,统一长度为5(不足补NA)
  trimmed <- row[first_c_idx:length(row)]
  length(trimmed) <- 5
  
  return(trimmed)
}

# 逐行处理并转换为数据框
result_df <- as.data.frame(t(apply(df, 1, process_row)), stringsAsFactors = FALSE)
# 设置列名
colnames(result_df) <- paste0("col", 1:5)

结果验证

运行后result_df即为目标数据框:

> result_df
  col1 col2 col3 col4 col5
1    c    1    2    c    1
2    c    3    4    c    1
3    c    5    6    c    1

内容的提问来源于stack exchange,提问作者Andrés Ardila

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:37:28