У меня есть data.frame
под названием DATA
. Используя BASE R , мне было интересно, как я могу удалить любые переменные в DATA
с именем любого из следующих: ar = c("out", "Name", "mdif" , "stder" , "mpre")
?
В настоящее время я использую DATA[ , !names(DATA) %in% ar]
, но покапри этом удаляются нежелательные переменные, снова создаются некоторые новые переменные с суффиксом .1
.
После извлечения можно ли удалить только суффиксы?
Примечание1: МыНЕТ ДОСТУПА к r
, единственный вход - DATA
.
Примечание 2: Это игрушечные данные, функциональное решение приветствуется.
r <- list(
data.frame(Name = rep("Jacob", 6),
X = c(2,2,1,1,NA, NA),
Y = c(1,1,1,2,1,NA),
Z = rep(3, 6),
out = rep(1, 6)),
data.frame(Name = rep("Jon", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,NA,NA),
Z = rep(2, 6),
out = rep(1, 6)))
DATA <- do.call(cbind, r) ## DATA
ar = c("out", "Name", "mdif" , "stder" , "mpre") # The names for exclusion
DATA[ , !names(DATA) %in% ar] ## Current solution
#>
# X Y Z X.1 Y.1 Z.1 ## X.1 Y.1 Z.1 are automatically created but no needed
# 1 2 1 3 1 1 2
# 2 2 1 3 NA 1 2
# 3 1 1 3 3 1 2
# 4 1 2 3 1 2 2
# 5 NA 1 3 NA NA 2
# 6 NA NA 3 NA NA 2