检查字符是否在R中的数据框中

问题描述 投票:1回答:2

我正在寻找一种简单的方法来检查R数据框中的值是否有逗号(或任何字符)。

假设我有以下数据框:

df <- data.frame(A = c("apple","orange", "banana","strawberries"), 
                 B = c(23,12,10,15), 
                 C = c("2,53", "1.35","0,25","1,44"))

如果我知道带有逗号的列,我使用它:

which(grepl(",",df$C))
length(which(grepl(",",df$C)))

但是,我想要一个输出作为上面的输出,但不指定我的数据帧的列。

有什么建议?

r dataframe grepl
2个回答
2
投票

你需要简单地浏览所有三列; sapply在这里工作:

sapply(colnames(df[]), function(x) grep(",", df[,x]))


##output:

# $A
# integer(0)
# 
# $B
# integer(0)
# 
# $C
# [1] 1 3 4

1
投票

掌握解决方案有点简单;首先,将您的数据框转换为矢量。

df2vector <- as.vector(t(df))

df2vector 
# [1] "apple"        "23"           "2,53"         "orange"       "12"          
# [6] "1.35"         "banana"       "10"           "0,25"         "strawberries"
# [11] "15"           "1,44"        

然后使用你的方法。

length(which(grepl(",",df2vector)))
# [1] 3
© www.soinside.com 2019 - 2024. All rights reserved.