如何查找具有非英语值的列的名称?R
我有一个如图所示的数据,有些列有非英语单词,如何使用R编程找到这些列名 数据和预期结果如图所示如何查找具有非英语值的列的名称?R,r,R,我有一个如图所示的数据,有些列有非英语单词,如何使用R编程找到这些列名 数据和预期结果如图所示 首先是一些可复制的数据: df <- data.frame( Var1 = c("some", "data", "ß", "کابل"), Var2 = c("کابل", "data", "کابل", "data"), Var3 = c("some", "data", "more", "data"), Var4 = c("some", "data", "more", "dat
首先是一些可复制的数据:
df <- data.frame(
Var1 = c("some", "data", "ß", "کابل"),
Var2 = c("کابل", "data", "کابل", "data"),
Var3 = c("some", "data", "more", "data"),
Var4 = c("some", "data", "more", "data")
)
df
编辑:
要仅获取名称,只需将整个语句插入名称
:
names(df[, -which(grepl("[^ -~]", apply(df, 2, paste0, collapse = " ")))])
[1] "Var3" "Var4"
基准R:
lapply(df, function(x){
ifelse(grepl("\\@", x), x, gsub(paste0(c(letters, LETTERS), collapse = "|"), "", x))})
返回名称:
names(df)[sapply(df, function(x) {
ifelse(grepl("\\@", x), FALSE,
any(gsub(paste0(
c(letters, LETTERS), collapse = "|"
), "", x) == ""))
})]
很高兴它起作用了。请考虑勾选左上角的箭头,表示您已接受答案。
names(df)[sapply(df, function(x) {
ifelse(grepl("\\@", x), FALSE,
any(gsub(paste0(
c(letters, LETTERS), collapse = "|"
), "", x) == ""))
})]