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

在R中提取数据列前四位数字并生成独立变量的方法

解决提取列前四位数字的问题

你的代码失败主要有两个原因:一是未指定数据框(直接写columnc会导致R找不到对应向量),二是列名的大小写/格式不匹配(比如数据集里是Column C,代码里写的columnc)。以下是两种可行的实现方式:

基础R方法

添加新列到数据集

根据列名是否带空格选择对应代码:

# 列名为ColumnC(无空格)
df$ColumnD <- substr(df$ColumnC, 1, 4)

# 列名为Column C(带空格,需用反引号包裹)
df$ColumnD <- substr(df$`Column C`, 1, 4)

提取为独立变量

直接将提取结果赋值给新变量即可:

# 列名无空格
four_digits_var <- substr(df$ColumnC, 1, 4)

# 列名带空格
four_digits_var <- substr(df$`Column C`, 1, 4)

tidyverse(dplyr)方法(更简洁)

如果习惯使用tidyverse生态的语法:

添加新列

library(dplyr)

# 列名无空格
df <- df %>% mutate(ColumnD = substr(ColumnC, 1, 4))

# 列名带空格
df <- df %>% mutate(ColumnD = substr(`Column C`, 1, 4))

提取为独立变量

library(dplyr)

# 列名无空格
four_digits_var <- df %>% pull(ColumnC) %>% substr(1, 4)

# 列名带空格
four_digits_var <- df %>% pull(`Column C`) %>% substr(1, 4)

额外说明

如果需要将提取结果转为数值型(默认是字符型),可以用as.numeric()包裹:

# 示例:基础R转数值
df$ColumnD <- as.numeric(substr(df$ColumnC, 1, 4))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:35:20