[英]Compare columns in R dataframe
下面是數據框。 我正在嘗試比較 2 列,以便獲得所需的輸出
asd <- data.frame(Ratings= c(1,2), Reviews = c(45,54))
我得到的輸出
c("1" = asd$Reviews[asd$Ratings == 1], "2" = asd$Reviews[asd$Ratings == 2])
1 2
45 54
但是如果我以相反的方式做,我不會得到預期的輸出
c(asd$Reviews[asd$Ratings == 1] = 1, asd$Reviews[asd$Ratings == 2] = 2)
預期輸出
45 54
1 2
使用setNames
setNames(seq_along(asd$Ratings), asd$Reviews)
45 54
1 2
或使用names<-
do.call(`names<-`, asd)
45 54
1 2
這也適用於新數據
asd <- data.frame(Ratings= c("Yes","No"), Reviews = c(45,54))
do.call(`names<-`, asd)
45 54
"Yes" "No"
或在 OP 的帖子中使用的相同表達式
setNames(c(1, 2), c(asd$Reviews[asd$Ratings == 1], asd$Reviews[asd$Ratings == 2]))
45 54
1 2
或者更容易
library(tibble)
deframe(asd[2:1])
或者另一種選擇是:=
with dplyr::lst
然后unlist
library(dplyr)
unlist(lst(!! glue::glue("{asd$Reviews[asd$Ratings == 1]}") := 1,
!! glue::glue("{asd$Reviews[asd$Ratings == 2]}") := 2))
45 54
1 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.