Mam tę ramkę danych df
df
col1 col2
Engraulis encrasicolus Engraulis encrasicolus
Sardina pilchardus Sardina pilchardus
Scomber spp Scomber
Spicara Spicara
class(df)
"factor"
Chciałbym wklejać litery „spp” w col2
za każdym razem, gdy występuje w col1
na przykład:
col1 col2
Engraulis encrasicolus Engraulis encrasicolus
Sardina pilchardus Sardina pilchardus
Scomber spp Scomber spp
Spicara Spicara
Próbowałem z:
df.res <- ifelse(df$col1 %like% "spp"==T,
paste("spp",collapse=NULL) %in% df$col2,df$col1)
Ale wynikiem jest podobna ramka danych df
z ciągiem znaków i logiką wartości FALSE:
df.res
"Engraulis encrasicolus"
"Sardina pilchardus"
"FALSE"
"Spicara"
1 odpowiedź
Korzystanie z bazy R:
df.res <- ifelse(grepl("spp", df$col1),
paste0(df$col2, " spp"), df$col2)
Lub jako dodatkowa kolumna w oryginalnej ramce danych:
df$col3 <- ifelse(grepl("spp", df$col1),
paste0(df$col2, " spp"), df$col2)
Podobne pytania
Nowe pytania
r
R to darmowy język programowania typu open source i środowisko oprogramowania do obliczeń statystycznych, bioinformatyki, wizualizacji i obliczeń ogólnych. Proszę podać minimalne i powtarzalne przykłady wraz z pożądanymi wynikami. Użyj dput () dla danych i określ wszystkie pakiety inne niż podstawowe za pomocą wywołań biblioteki (). Nie osadzaj obrazów dla danych lub kodu, zamiast tego użyj wciętych bloków kodu. W przypadku pytań związanych ze statystykami należy skorzystać z https://stats.stackexchange.com.