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

Pav*_*adi 3 r data.table

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

Custid  A   B  C
123     0   8  0
124     0   0  6
Run Code Online (Sandbox Code Playgroud)

应该成为

Custid  A   B  C
123     0   1  0
124     0   0  1
Run Code Online (Sandbox Code Playgroud)

A.Y*_*iha 5

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

df = as.data.frame(dt)
df[,-1] = (df[,-1] != 0)*1
Run Code Online (Sandbox Code Playgroud)

作品.的-1索引指示所述非夹杂物的第一列,然后内部的括号返回真或假语句,并*1确保该结果以数字形式返回.

如果需要,可以将其转回data.table.

dt = data.table(df)
Run Code Online (Sandbox Code Playgroud)