Bir dize değişkeni [duplicate] ile mutate () 'de mevcut bir sütuna nasıl erişilir
Jan 09 2021
Zaten "dplyr" de Dinamik değişken adlarını kullan'ı okudum, ancak benim sorunum zaten var olan bir sütunu bir dize değişkeni olarak saklanan bir sütun adıyla değiştirmek.
data <- tibble::tribble(
~colA, ~colB,
1, 2,
3, 4
)
namestring <- "colA"
----
> data
# A tibble: 2 x 2
colA colB
<dbl> <dbl>
1 1 2
2 3 4
> namestring
[1] "colA"
Şimdi colA
kullanarak değiştirmek istiyorumnamestring
İsimlendirme olmadan istenen çıktı böyledir.
data %>%
dplyr::mutate(colA = colB * 100)
## A tibble: 2 x 2
# colA colB
# <dbl> <dbl>
#1 200 2
#2 400 4
Ama dplyr programlamayı kullanırken bana hata veriyor
namestring <- "colA"
data %>%
dplyr::mutate(.data[[namestring]] = colB + 2)
# Error: unexpected '=' in:
# "data %>%
# dplyr::mutate(.data[[namestring]] ="
filter
ve LHS'de select
kullanarak aynı türden bir hata üretmeyin.data[[string]]
data %>%
dplyr::filter(.data[[namestring]] == 3)
## A tibble: 1 x 2
# colA colB
# <dbl> <dbl>
#1 3 4
Yanıtlar
2 akrun Jan 09 2021 at 04:46
Biz kullanabilirsiniz :=
ile!!
library(dplyr)
data %>%
mutate(!! namestring := colB * 100)
-çıktı
# A tibble: 2 x 2
# colA colB
# <dbl> <dbl>
#1 200 2
#2 400 4
Veya içinde olabilir across
data %>%
mutate(across(all_of(namestring), ~ colB* 100))
# A tibble: 2 x 2
# colA colB
# <dbl> <dbl>
#1 200 2
#2 400 4
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı