r - 在 r 中自动更改向量的条目值
问题描述
我有以下向量x
:
x = [
60
60
80
0
0
1
2]
我想在 r 中重写一个代码,它可以“自动”将上述向量x
转换为:
x = [
1960
1960
1980
2000
2000
2001
2002]
我写了下面的代码,但它不起作用。
x[x>=60 && x<=80] <- 1900 + x
x[x>=0 && x<=2] <- 2000 + x
任何帮助将不胜感激。
解决方案
我们可以case_when
在一行中使用
library(dplyr)
case_when(x >=60 & x <= 80 ~ 1900 + x, x >= 0 & x <=2 ~ 2000 + x, TRUE ~ x)
-输出
x
#[1] 1960 1960 1980 2000 2000 2001 2002
或ifelse
使用base R
ifelse(x >=0 & x <= 2, 2000 + x, 1900 + x)
数据
x <- c(60, 60, 80, 0, 0, 1, 2)
推荐阅读
- html - 我应该从服务器加载图像还是从 url 获取?
- python - sqlite3中TEXT列索引的性能不佳
- typegraphql - 获取请求的信息对象
- python - 创建二维数组/列表python
- spring - 为什么jdbc使用auto-commit true而jpa使用auto-commit false?
- r - 在 R flextable 中,复杂的符号可以出现在列标题中
- javascript - 使用按钮单击事件时 Firestore 不添加新记录(网络)
- python - 如何更快地使用带有过滤器的 pandas.DataFrame.cumsum() 函数?
- ios - 如何将文本字段中的数据推送到另一个 VC 中的标签
- javascript - 如何使用 cookie 会话或本地存储将某些内容保存到购物车?