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)
我正在尝试为我的数据编写一个测试,以便在数据帧的一列中是否有任何长度超过 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)