转换R中列的值

时间:2015-03-13 14:10:10

标签: r

我正在使用一个名为Click的列的数据集,如果至少有1次点击,我想将此列的值转换为1,如果没有任何点击,则为0。我该怎么做呢?

3 个答案:

答案 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)