我有類似以下的資料設定。
library(tidyverse)
library(dplyr)
因素< - c("a"/span>,"b"/span>。 "c","d")
指標=c(1。 0,1,0)
資料 < - as_tibble(cbind(factors,indicator))
data$factors <- as.factor(data$factors)
我想在指標變數等于1的所有行的因子水平上附加一個星號。 指標的值在因子的一個給定值內不曾變化。也就是說,對于因子等于 "a "的所有觀測,指標總是1。
# A tibble: 4 x 2
因素指標
<chr>/span> <chr>/span>
1 a* 1
2 b0
3 c* 1
4 d 0
什么是最好的方法?
uj5u.com熱心網友回復:
我們可以在ifelse/case_when中使用一個邏輯條件來粘貼那些'因素'中的值對應'指標'值為1的*
library(dplyr)
library(stringr)
資料 %>%
mutate(factors =case_when(指標== 1 ~
str_c(as. character(factors)。 "*"), TRUE ~ as. character(factors)))
輸出
# A tibble: 4 x 2
因素指標
<chr>/span> <chr>/span>
1 a* 1
2 b0
3 c* 1
4 d 0
uj5u.com熱心網友回復:
這樣做應該可以:
data %>%
mutate(factors= ifelse(indicator== 1, paste0(factors, "*")。 因素))
# A tibble: 4 x 2
因素指標
<chr> <chr>
1 a* 1
2 2 0
3 c* 1
4 4 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/306883.html
標籤:
上一篇:使用tidyjson將JSON轉換為data.frame
下一篇:在R中建立不一致的字串內的計數?
