我正在使用一个名为Click的列的数据集,如果至少有1次点击,我想将此列的值转换为1,如果没有任何点击,则为0。我该怎么做呢?
答案 0 :(得分:3)
最好的方法是避免复制整个矢量并仅通过引用分配相关值。您可以使用data.table
来实现此目的,例如
df <- data.frame(Click = c(0, 1, 3, 4, 0, 0)) # Your imaginary data
library(data.table)
setDT(df)[Click > 1L, Click := 1L][]
# Click
# 1: 0
# 2: 1
# 3: 1
# 4: 1
# 5: 0
# 6: 0
对于大数据集,您可以尝试对键控数据集进行二进制搜索
setkey(df, Click)[!.(0), Click := 1]
答案 1 :(得分:0)
dataset$Click <- as.numeric(dataset$Click != 0)
答案 2 :(得分:0)
以下应该可行:只需创建一个TRUE / FALSE语句的布尔向量,并将它们乘以1即可获得1或0。
k = c(5,0,6,9,3,0,0,4,5)
answer = (k > 0)*1
> k = c(5,0,6,9,3,0,0,4,5)
> answer = (k > 0)*1
> answer
[1] 1 0 1 1 1 0 0 1 1
在你的情况下:
b = (dataset$Click > 0) * 1
newdataset = cbind(dataset,b)