2015-03-13 64 views
0

我正在使用一个名为Click的列的数据集,并且如果至少有一次单击,我想要将此列的值转换为1,如果没有点击所有。我如何去做这件事?在R中转换列的值

回答

0
dataset$Click <- as.numeric(dataset$Click != 0) 
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) 
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]