是否可以在满足特定条件的列中的某些值上添加星号?

It is possible to add an asterisk to certain values ​in a column that meet a certain condition?

提问人:Sergio 提问时间:10/24/2023 最后编辑:arheopsSergio 更新时间:10/26/2023 访问量:71

问:

id <- c("a", "b", "c", "d", "e")
value <- c(3, 4.1, 13.2, 8.0, 10.1)
df <- data.frame(id, value)

喜欢这个:

编号 价值
一个 3
b 4.1
c 13.2*
d 8.0
e 10.1*

在本例中,我有一个数据帧,我想为所有大于或等于 10 的值放置一个星号

R DataFrame 添加 DPLYR

评论


答:

0赞 Mark 10/24/2023 #1
df$value = ifelse(df$value >= 10, paste0(df$value, "*"), df$value)

或者使用

dplyr::mutate(df, value = ifelse(value >= 10, paste0(value, "*"), value))

评论

0赞 Sergio 10/26/2023
非常感谢,这个解决方案对我来说非常有效。此外,如果不是将星号添加到大于或小于条件的值,那么如果星号超出范围(例如,如果值低于 5 或大于 10),您将如何粘贴该星号?
0赞 Mark 10/26/2023
你可以使用这个功能!between(), then check for numbers not between using
0赞 Mark 10/26/2023
例如 如果 x 不在 1 和 10 之间,则返回 true!between(x, 1, 10)
1赞 jay.sf 10/24/2023 #2

我宁愿添加一个星号列,这样值就不会转换为字符。

> within(df, {
+   v10 <- value >= 10
+   ' ' <- c('', '*')[v10 + 1L]
+   rm(v10)
+   })
  id value  
1  a   3.0  
2  b   4.1  
3  c  13.2 *
4  d   8.0  
5  e  10.1 *