如何将R中具有不同长度的列子串化为每行的子串并将其转换为数值类型?[副本]

bd1hkmkf  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(71)

此问题已在此处有答案

Extracting numbers from vectors of strings(13个回答)
5天前关闭。
我想在dataframe中创建一个额外的列,它是dataframe中现有列的子字符串,但使用相同的起点和不同的终点。
具体地说,列是字符串格式的,第一个空格之前的字符需要提取到新列中,然后转换为数字类型
我目前拥有的例子:

HH_ID <- c("A123", "B123", "C123")
HH_MEMBERS <- c("12 Members","8 Members","14 Members")

df <- data.frame(HH_ID, HH_MEMBERS)

print(df)

        HH_ID       HH_MEMBERS
1       A123        12 Members
2       B123         8 Members
3       C123        14 Members

这是一个我想要的例子,创建New_members列,其中包含HH_Memebrs列中条目的初始数字部分,并且此字符串数字数据最终转换为整数

HH_ID       HH_MEMBERS   NEW_MEMBERS
1       A123        12 Members     12
2       B123         8 Members      8
3       C123        14 Members     14

任何帮助都将不胜感激
我已经尝试了-> substring(col_name,1,1),但这并没有捕获具有多个数字的字符串

zazmityj

zazmityj1#

df %>%
  mutate(NEW_MEMBERS = as.numeric(sub("(\\d+).+", "\\1", HH_MEMBERS)))

  HH_ID HH_MEMBERS NEW_MEMBERS
1  A123 12 Members          12
2  B123  8 Members           8
3  C123 14 Members          14

相关问题