相关疑难解决方法(0)

如何一次替换多个值

我想一次用特定的其他值替换向量中的不同值.

在我正在解决的问题中:

  • 1应该替换为2,
  • 2与4,
  • 3与6,
  • 4与8,
  • 5与1,
  • 6与3,
  • 7与5和
  • 8与7.

以便:

x <- c(4, 2, 0, 7, 5, 7, 8, 9)
x
[1] 4 2 0 7 5 7 8 9
Run Code Online (Sandbox Code Playgroud)

将被转换为:

[1] 8 4 0 5 1 5 7 9
Run Code Online (Sandbox Code Playgroud)

更换后.

我尝试过使用:

x[x == 1] <- 2
x[x == 2] <- 4
Run Code Online (Sandbox Code Playgroud)

等等,但这导致1被7替换.

没有使用任何软件包,这个问题最简单的解决方案是什么?

r

7
推荐指数
2
解决办法
1743
查看次数

在数据框中使用Ifelse

我正在使用的数据框架是

> df <- data.frame(Name=c("Joy","Jane","Jack","Jad"),M1=c(10,40,55,90))
> df
  Name M1
1  Joy 10
2 Jane 40
3 Jack 55
4  Jad 90

> df$Final <- ifelse(df$M1<=50,60,max(75,df$M1))
> df
  Name M1 Final
1  Joy 10    60
2 Jane 40    60
3 Jack 55    90
4  Jad 90    90
Run Code Online (Sandbox Code Playgroud)

如果M1值小于或等于50,那么我需要60作为我的最终值,而如果M1值大于50则我需要最大值(75,M1).在Jack的情况下,M1是55,所以我应该得到最大值(75,55),这是75.我认为它给了我整个M1列的最大值.怎么避免这个?

期望的输出

  Name M1 Final
1  Joy 10    60
2 Jane 40    60
3 Jack 55    75
4  Jad 90    90
Run Code Online (Sandbox Code Playgroud)

if-statement r dataframe

3
推荐指数
1
解决办法
437
查看次数

标签 统计

r ×2

dataframe ×1

if-statement ×1