生成频数表列表时如何纳入NA的频数?
问题原因与解决方法
你的问题出在lapply调用table时的参数传递方式错误:直接写table(useNA = 'always')会先执行这个无输入的table调用,而非将参数传递给每个列的统计操作。
正确写法有两种:
方法1:使用匿名函数包装
l1 = lapply(df1, function(col) table(col, useNA = 'always'))
匿名函数接收df1的每一列作为col参数,再传递给table并指定useNA参数。
方法2:利用lapply的额外参数传递
l1 = lapply(df1, table, useNA = 'always')
lapply的第三个及以后的参数会直接传递给指定的函数(这里是table),无需额外包装。
执行任意一种写法后,l1中每个元素的统计结果都会包含NA的计数,和单独调用table(df1$x, useNA = 'always')的效果一致。
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

