如何构建函数来命名长度为x in R的列?
我想建立一个函数,可以搜索文本向量中的单词。但有时向量将包含10个以上的元素(ps:向量的长度可以变化)。所以我想根据函数“x”的长度来命名这些列。名称应该是“str1”、“str2”、“str3”……等等。我怎么做?谢谢你的帮助:) 像这样:如何构建函数来命名长度为x in R的列?,r,dataframe,R,Dataframe,我想建立一个函数,可以搜索文本向量中的单词。但有时向量将包含10个以上的元素(ps:向量的长度可以变化)。所以我想根据函数“x”的长度来命名这些列。名称应该是“str1”、“str2”、“str3”……等等。我怎么做?谢谢你的帮助:) 像这样: require(stringr) myfun <- function(u) { n <- seq_along(u) word5 <- c("my", "god", 6, 5, 3, 4, 3) qq <- funct
require(stringr)
myfun <- function(u) {
n <- seq_along(u)
word5 <- c("my", "god", 6, 5, 3, 4, 3)
qq <- function(x) {
str_count(x, pattern = word5)
}
Freq <- sapply(u, FUN = qq)
output1 <- data.frame(word5, Freq)
colnames(output1)[-1] <- paste0("str", n)
output1
}
u <- c("my god","my love my", "my my my")
myfun(u)
# word5 str1 str2 str3
# 1 my 1 2 3
# 2 god 1 0 0
# 3 6 0 0 0
# 4 5 0 0 0
# 5 3 0 0 0
# 6 4 0 0 0
# 7 3 0 0 0
require(stringr)
myfun这有用吗
library(tidyverse)
word_searcher <- function(vec_to_search, pattern) {
word_count <- stringr::str_count(vec_to_search, pattern)
setNames(word_count, paste0("str_", seq_along(word_count))) %>%
enframe() %>%
spread(name, value) %>%
mutate(word5 = pattern) %>%
select(word5, everything())
}
u <- c("my god","my love my", "my my my", "my", "pop", "pip my")
word_searcher(u, "my")
# # A tibble: 1 x 7
# word5 str_1 str_2 str_3 str_4 str_5 str_6
# <chr> <int> <int> <int> <int> <int> <int>
# 1 my 1 2 3 1 0 1
库(tidyverse)
单词搜索者%
排列(名称、值)%>%
变异(word5=模式)%>%
选择(word5,everything())
}
你的数据是什么
非常感谢你!你完美地解决了我的问题。我还有一个问题。如果要删除包含数字0的行。“我该怎么做?”幽舟,谢谢你。祝你今天愉快:)
require(stringr)
myfun <- function(u) {
n <- seq_along(u)
word5 <- c("my", "god", 6, 5, 3, 4, 3)
qq <- function(x) {
str_count(x, pattern = word5)
}
Freq <- sapply(u, FUN = qq)
output1 <- data.frame(word5, Freq)
colnames(output1)[-1] <- paste0("str", n)
output1
}
u <- c("my god","my love my", "my my my")
myfun(u)
# word5 str1 str2 str3
# 1 my 1 2 3
# 2 god 1 0 0
# 3 6 0 0 0
# 4 5 0 0 0
# 5 3 0 0 0
# 6 4 0 0 0
# 7 3 0 0 0
library(tidyverse)
word_searcher <- function(vec_to_search, pattern) {
word_count <- stringr::str_count(vec_to_search, pattern)
setNames(word_count, paste0("str_", seq_along(word_count))) %>%
enframe() %>%
spread(name, value) %>%
mutate(word5 = pattern) %>%
select(word5, everything())
}
u <- c("my god","my love my", "my my my", "my", "pop", "pip my")
word_searcher(u, "my")
# # A tibble: 1 x 7
# word5 str_1 str_2 str_3 str_4 str_5 str_6
# <chr> <int> <int> <int> <int> <int> <int>
# 1 my 1 2 3 1 0 1
u <- c("my god","my love my", "my my my")
word5<- c("my","god",6,5,3,4)
library(stringr)
ans <- rbind.data.frame(t(sapply(word5, function(x) str_count(u, x))))
V1 V2 V3
my 1 2 3
god 1 0 0
6 0 0 0
5 0 0 0
3 0 0 0
4 0 0 0