在R中创建另一列

在R中创建另一列,r,R,这是我当前的数据集 我想取“窄”后面的数字(例如20),再做一个向量。你知道我怎么做吗 我们可以使用sub删除子字符串“窄”,然后是,和零个或多个空格(\\s+),替换为空白(“)并转换为数字 df1$New <- as.numeric(sub("Narrow,\\s*", "", df1$Stimulus)) df1$New您希望从tidyr软件包中获得 library(dplyr) df <- data.frame(x = c(NA, "a.b", "a.d", "b.c")

这是我当前的数据集


我想取“窄”后面的数字(例如20),再做一个向量。你知道我怎么做吗

我们可以使用
sub
删除子字符串“窄”,然后是
和零个或多个空格(
\\s+
),替换为空白(
)并转换为
数字

df1$New <- as.numeric(sub("Narrow,\\s*", "", df1$Stimulus))
df1$New您希望从tidyr软件包中获得

library(dplyr)
df <- data.frame(x = c(NA, "a.b", "a.d", "b.c"))
df %>% separate(x, c("A", "B"))
#>      A    B
#> 1 <NA> <NA>
#> 2    a    b
#> 3    a    d
#> 4    b    c
库(dplyr)
df%单独(x,c(“A”,“B”))
#>A B
#> 1  
#>2 a b
#>三维
#>4 b c

您可以使用
分离
刺激
列分离为两个向量

library(tidyr)
df %>%
  separate(col = stimulus, 
           sep = ", ",
           into = c("Text","Number"))

也许您可以使用
regmatches

df$new <- with(df, as.numeric(unlist(regmatches(stimulus,gregexpr("\\d+",stimulus)))))

df$new如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,那么就更容易为您提供帮助。不要将数据作为图像发布——这不容易复制。您可以尝试使用strsplit(数据[,1],“,”)的方法。您将很幸运地获得具有可复制数据的答案。使用数据时。表格格式:
数据。表格::tstrsplit(刺激,“,”
将执行trickreadr::parse_编号(数据$Stimulus)