R data.table,如果大于0,则将每个单元格值替换为1

标签 r data.table

我有 R data.table 有 25 列,第 1 列是 ID,24 列是整数变量。有接近 100 万行。我如何将所有这些非零值转换为 1

Custid  A   B  C
123     0   8  0
124     0   0  6

应该变成

Custid  A   B  C
123     0   1  0
124     0   0  1

最佳答案

假设你的 data.table 被称为 'dt',

df = as.data.frame(dt)
df[,-1] = (df[,-1] != 0)*1

有效。 -1 索引表示不包含第一列,然后括号内返回真假语句,*1 确保结果以数字形式返回表格。

如果您愿意,可以将其转回 data.table。

dt = data.table(df)

关于R data.table,如果大于0,则将每个单元格值替换为1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832189/

相关文章:

r - 如何停止 ggplot 线图添加填充

r - 在 R 命令行中显示时钟

mysql - 如何将整个数据帧写入 R 中的 mySql 表

r - 合并 data.tables 使用超过 10 GB RAM

r - 聚合和 DCast

R 将文本文件导入为数据框列表

通过字符子集执行查找时保留矩阵维度

r - 尝试以编程方式使用 data.table 时,特定场景出现 "no such index at level 1"错误

R - 加快大致日期匹配。 idata.frame?

R:由于缺少符号 _omp_set_num_threads,无法加载 data.table