在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)