R:在if条件下应用并取消校准

R:在if条件下应用并取消校准,r,function,if-statement,apply,R,Function,If Statement,Apply,如果数据帧的一列中有任何长度超过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(

如果数据帧的一列中有任何长度超过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的字符串

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)

if(nchar(x>9)nchar(x))
if是一个函数
nchar
是矢量化的,所以你只需要
any(nchar(df$a)>9)
if(nchar(x>9)nchar(x))失去逗号,
if
是一个函数
nchar
是矢量化的,所以你只需要
any(nchar(df$a)>9)
。查看行的选项:df$a[nchar(df$a)>9,]不起作用,我得到一个错误,因为维度数不正确。Gregor,有什么建议吗?查看行的选项:df$a[nchar(df$a)>9,]不起作用,我得到一个错误,因为维度数不正确。格雷戈,有什么建议吗?