如何在数据框中将1替换为0,0替换为1

4

我有一个数据框df。我想将数据框中所有的零替换为一,所有的一替换为零。或者总的来说,如果我需要找到某个值(比如一)并用其他值替换该值,最好的方法是什么?

  a b
1 1 0
2 0 1
3 1 0
4 0 0

4
直接从整个数据框中减去1吗?1 - df (不确定如何在 R 中实现 :p) - cs95
2
在 R 中是 abs(df - 1)。 @cᴏʟᴅsᴘᴇᴇᴅ - Ronak Shah
3
可能是重复的问题,类似于基于条件(if)语句在R中替换数据框中的值 或更一般地说是字典样式替换多个项目 - Ronak Shah
2个回答

6
一个代码高尔夫的挑战是将数据集取反并使用+
+(!df)
#  a b
#1 0 1
#2 1 0
#3 0 1
#4 1 1

谢谢,但在一般情况下,如果我需要将所有的零都替换为一个值(例如6),我该怎么做? - yome
@yome 1s是怎么处理的?使用replace(df, !df, 6) - akrun
将一个特定值为5的1秒钟替换为另一个特定值? - yome
如果你要替换许多值,你可以使用case_when或者if_else。在dplyr中的一个选项是df %>% mutate_all(funs(case_when(.==1~5L, .==0 ~ 6L, TRUE ~.))) 或者在base R中,lapply(df, function(x) ifelse(x == 1, 5, ifelse(x == 0, 6, x)))。这取决于你要替换多少个值。通常的方法是键/值对,然后对许多值进行替换。 - akrun
你能帮忙回答这个问题吗? https://stackoverflow.com/questions/48019176/change-color-of-the-values-in-heatmap-in-highcharter-r-package - yome

2
mydata=data.frame(a=c(1,0,1,0),b=c(0,1,0,0));
psych::reverse.code(c(-1,-1),mydata)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接