everyone。私の仕事は、8つの列を持つ3つのデータセットをRで1つに結合し、次に: 1)列1-5から - すべての質問をNA に変換する必要があります。列1-5から、すべての文字列と非数値の回答を-2に変換する必要があります。より効率的な方法でデータをRに変換する
問題は、ファイルを読み込んでいるときに自動的にすべてが文字に変換されていて、as.numeric関数を適用すると不可能な数値に変換されているということですNAに文字列を変換すると同時に、後で何が追跡されるのかを追跡できなくなります。例えば
、私が持っている:私は出力として欲しい
Answer.1 Answer.2 Answer.3
1 don't know <Unanswered> 5
2 4 a-1 <Unanswered>
3 1 5 4
はこれです:
Answer.1 Answer.2 Answer.3
1 -2 NA 5
2 4 -2 NA
3 1 5 4
私はこの醜いコード入力することで解決策を見つけるために管理しました:
copy <- bind_rows(group1, group2, group3)
copy[, 1:5] <- gsub("<Unanswered>", "5000", copy[,1:6])
copy$Answer.1 <- gsub("<Unanswered>", "5000", copy$Answer.1)
copy$Answer.2 <- gsub("<Unanswered>", "5000", copy$Answer.2)
copy$Answer.3 <- gsub("<Unanswered>", "5000", copy$Answer.3)
copy$Answer.4 <- gsub("<Unanswered>", "5000", copy$Answer.4)
copy$Answer.5 <- gsub("<Unanswered>", "5000", copy$Answer.5)
copy$Answer.1 <- as.numeric(copy$Answer.1)
copy$Answer.2 <- as.numeric(copy$Answer.2)
copy$Answer.3 <- as.numeric(copy$Answer.3)
copy$Answer.4 <- as.numeric(copy$Answer.4)
copy$Answer.5 <- as.numeric(copy$Answer.5)
copy[is.na(copy)] <- -2
copy[copy == 5000] <- NA
を
しかし、これを行うより効率的な方法があるのだろうかと私は不思議です。私たちの割り当てでは、dplyrやtidyr以外のパッケージを使用することはできません。
私はかなり完全に疑問を取得できませんでしたが、あなたはあなたのファイルを読むためにread.csv()を使用している場合、あなたは「na.strings」パラメータを使用することができます読みたい文字列をNAに変換します。 – krish
すべてを文字列として自動的に読み取らないようにするには、readAs.csv()関数内でstringsAsFactors = FALSEを使用できます。 – krish
私は両方のものを試しましたが、まだ動作していません。 – Assen