Мои данные:
library(tidyverse)
1:6%>%
str_c('var',.)%>%
map(~assign(.,runif(30,20,100),envir=globalenv()))
tibble<-as_tibble(
bind_cols(mget(ls(pattern='*v')))
)
cluster<-kmeans(tibble,centers=3)
cluster
tibble$kmeans<-as.factor(cluster[['cluster']])
head(tibble)
Когда примените эту функцию, результат будет нормальным:
names(tibble)[str_which(names(tibble),regex('KMEaNS',ignore_case=TRUE))]<-'variable'
variable
- это новое имя.
Для list
эта функция не работает:
mylist<-list(dataset1=c(a=1,kmeans=2,c=3),
dataset2=c(a=4,kmeans=5,c=6),
dataset2=c(r=7,kmeans=8,p=9))
Первая функция:
mylist%>%
lapply(function(x){
lapply(x,names(x)[str_which(names(x),regex('KMEa',ignore_case=T))])<- 'variable'
})
Ошибка в lapply (x, names (x) [str_which (names (x), regex ("KMEa", ignore_case = T))]) <- "переменная": не удалось найти функцию "lapply <-" </p>
Вторая функция:
mylist%>%
map(.,~names(.)[str_which(names(.),regex('KM',ignore_case=T))])<-'variable'
Ошибка в mylist%>% map (., ~ Names (.) [Str_which (names (.), Regex ("KM", ignore_case = T))]) <- "variable": не удалось найти функцию " %>% <- "</p>
Два вопроса :