Это мой текущий набор данных
Я хочу взять числа после "узкого" (например, 20) и сделать еще один вектор. Есть идеи, как я могу это сделать?
Может быть, вы можете попробовать код ниже, используя regmatches
regmatches
df$new <- with(df, as.numeric(unlist(regmatches(stimulus,gregexpr("\\d+",stimulus)))))
Вы хотите отделить от пакета 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
Вы можете использовать separate для разделения столбца stimulus на два вектора.
separate
stimulus
library(tidyr) df %>% separate(col = stimulus, sep = ", ", into = c("Text","Number"))
Мы можем использовать sub, чтобы удалить подстроку "Narrow", за которой следует , и ноль или более пробелов (\\s+), заменить пробелом ("") и преобразовать в numeric* 1006. *
sub
,
\\s+
""
numeric
df1$New <- as.numeric(sub("Narrow,\\s*", "", df1$Stimulus))