在数字列中更新R值中大于0到1的值

时间:2017-08-16 06:38:23

标签: r

我有一个包含1:13字符列和14:176数字列的数据框。我想在数字列中从1替换所有大于0的值。

我试过:

HRtest1 <- cbind(HRtest[,1:13], 
                 apply(HRtest[,14:176], 2, function(x) {replace(x, x>0, 1)}))

但是这个代码只有在我将数据框更改为矩阵并且某些值未更新时才会起作用(如184.97965仍然存在)。

我试过的另一个代码是:

HRtest1<- as.data.table(lapply(HRtest, function(x){replace(x, x >0,1)})) 

但是这个字符列也会更新为1.请帮助我。

2 个答案:

答案 0 :(得分:0)

这样的东西
TRUE

应该有用。

您基本上将第14列添加到176,在相同维度中创建FALSETRUE矩阵,并将所有1值设置为var paneWidth = angular.element('.side-nav').width(); var paneWidth = jquery('.side-nav').width();

答案 1 :(得分:0)

有各种方法可以解决这个问题。但我想要一个普遍的情况。字符串/字符发生变化的原因是因为它们被视为因素。请确保将班级更改为字符:

 A[,1:13]=sapply(A[,1:13],as.character)
 sapply(A, function(x) if(is.numeric(x)) replace(x,x>0,1) else x)

或者你可以决定并继续做:

A[,-(1:13)]=sapply(A[,-(1:13)],function(x) replace(x,x>0,1))