0

最初の列の数値から後続の一致するdata.frame列の対応する文字列 (存在する場合)に変換する新しい列を に追加したいと思います。つまり、列名が最初の列のこの値と部分的に一致します。

Earner_Numberこの例では、列の値に応じて「Highest_Earner」の値を追加します。

> df1 <- data.frame("Earner_Number" = c(1, 2, 1, 5),
                    "Earner5" = c("Max", "Alex", "Ben", "Mark"),
                    "Earner1" = c("John", "Dora", "Micelle", "Josh"))
> df1
  Earner_Number Earner5 Earner1
1             1     Max    John
2             2    Alex    Dora
3             1     Ben Micelle
4             5    Mark    Josh

結果は次のようになります。

> df1
  Earner_Number Earner5 Earner1 Highest_Earner
1             1     Max    John           John
2             2    Alex    Dora        Neither
3             1     Ben Micelle       Michelle
4             5    Mark    Josh           Mark

私はdata.frameさまざまな小さな断片に切り分けようとしましたが、誰かがややきれいな方法を持っているかどうか疑問に思っていましたか?

4

2 に答える 2

2
    #Have to convert them to character for nested if else to work.

    df$Earner5 <- as.character(df$Earner5)
    df$Earner1 <- as.character(df$Earner1)

    #Using nested if to get your column.
    df$Higher_Earner <-    ifelse(df$Earner_Number == 5, df$Earner5, 
                                      ifelse(df$Earner_Number==1df$Earner1,"Neither"))
于 2019-07-15T19:31:42.830 に答える