R: apply and nchar with if 条件

R: apply and nchar with if condition

我正在尝试为我的数据编写一个测试,以便在数据帧的一列中是否有任何长度超过 9 个字符的字符串打印。

使用 apply 时,我对如何将 运行 nchar 作为带有 if 语句的函数感到困惑。我以为会是这样的:

apply(df$a, 2, function(x) if nchar(x>9), nchar(x))

但是我得到一个错误:意想不到的符号...

我在这里错过了什么?

对于单列,测试是否有超过9的字符串

any(nchar(df$a) > 9)

如果你想检查每一列

sapply(df, function(x) any(nchar(x) > 9))

如果您想查看单个列的行

df$a[nchar(df$a) > 9]  # a values only
df[nchar(df$a) > 9, ]  # entire rows

测试数据:

df = data.frame(a = c("alsdfsaj", "alksdjfaklsjfaskjf", "aklsdj"),
                b = c("b", "bbb", "bbbb"),
                stringsAsFactors = F)