R 查询所有列的数据表

R 查询所有列的数据表,r,data.table,R,Data.table,我试图将此代码概括为数据表中所有可能的列 dat_fun[col_1080 != '' & !is.na(col_1080), .(col_1080 = .N)] 一个简单的例子是,我只想计算所有列的唯一值,并返回一行,其中每个列的每个值都是唯一的: expr2 <- parse(text = paste0(".(", paste0(paste0(allCols, " = uniqueN(", allCols, "

我试图将此代码概括为
数据表中所有可能的列

dat_fun[col_1080 != '' & !is.na(col_1080), .(col_1080 = .N)]
一个简单的例子是,我只想计算所有列的唯一值,并返回一行,其中每个列的每个值都是唯一的:

  expr2 <- parse(text = paste0(".(",
                               paste0(paste0(allCols, " = uniqueN(", allCols, ")"), collapse = ", "),
                               ")"))

然后,这个代码
tmp2是这样的吗<代码>DT@Roland Oh!,这似乎是解决办法,我不知道。有一件事,我得到了
charToDate(x):字符串不是标准的明确格式
我需要将所有内容转换为字符串吗?@Roland但您的解决方案生成的行数与
DT
的行数一样多,是否可以只计算一次?就像我的第一个例子一样?@Roland你能把你的评论作为回答吗?像这样<代码>DT@Roland Oh!,这似乎是解决办法,我不知道。有一件事,我得到了
charToDate(x):字符串不是标准的明确格式
我需要将所有内容转换为字符串吗?@Roland但您的解决方案生成的行数与
DT
的行数一样多,是否可以只计算一次?就像我的第一个例子一样?@Roland你能发表你的评论作为回答吗?
.(col_1067 = uniqueN(col_1067), col_1068 = uniqueN(col_1068), ...)
col_1067 col_1068 col_1069 col_1070 col_1071 col_1072 col_1073 col_1074 col_1075  ...
1:      991        5        3      122      114      106       71     1001      576  ...
expr=parse(text="col_1080 != \'\' & !is.na(col_1080), .(col_1080 = .N)")
Error in parse(text = "col_1080 != '' & !is.na(col_1080), .(col_1080 = .N)") : 
  <text>:1:34: unexpected ','
1: col_1080 != '' & !is.na(col_1080),
dat_fun[, lapply(.SD, function(x) x != "" & !is.na(x))][, lapply(.SD, sum)]
# Throws 
Error in charToDate(x) : 
  character string is not in a standard unambiguous format
dat_fun[, lapply(.SD, function(x) as.character(x) != "" & !is.na(x))][, lapply(.SD, sum)]