首页 > 解决方案 > 将某列的字符修剪到一定长度

问题描述

我是 R 新手,这是我在这里的第一个问题,所以我试图尽可能详细地提出我的问题/问题:

我有一个由 7 列和大约 400 万行组成的数据框(EPO 的专利数据),第七列包括专利分类,它是一个字符组合,如"G01T001/00". 我正在尝试将此列中的所有字符减少到前 4 位数字 - 或者换句话说,保留它们 - (G01T001/00 --> G01T) 并保持所有其他列及其值不变。

我已经尝试过基于 iris 在相关问题中提出的某些建议:

library(datasets) 
library(stringr)
iris<-str_sub(iris$Species, end=-4)  

这个例子删除了列种类中每个值的最后 3 个字符,但我最终只得到了这个列,而所有其他的都“消失”了。

将我的问题转移到 iris 上:

我想要 iris 原样,只有“物种”列中的字符减少到前 4 位数字。

标签: rstringcharacterstringr

解决方案


您的代码行用缩短的列替换了完整的 iris 数据集。您需要具体说明您只想用缩短的列替换列 Species。

iris$Species <- str_sub(iris$Species, end=-3)

推荐阅读