隣接する列の文字列の値に基づいて、さまざまな行にさまざまな関数を適用しようとしています。私のデータフレームは次のようになります。
type size
A 1
B 3
A 4
C 2
C 5
A 4
B 32
C 3
タイプA、B、Cにさまざまな関数を適用して、3番目の列の列に「size2」を付けたいと思います。たとえば、次の関数がA、B、およびCに適用されるとします。
for A: size2 = 3*size
for B: size2 = size
for C: size2 = 2*size
このコードを使用して、タイプごとに個別にこれを行うことができます
df$size2 <- ifelse(df$type == "A", 3*df$size, NA)
df$size2 <- ifelse(df$type == "B", 1*df$size, NA)
df$size2 <- ifelse(df$type == "C", 2*df$size, NA)
ただし、他のすべての値を消去せずに、すべてのタイプに対してそれを行うことはできないようです。このコードを使用して、関数の適用をNAである値のみに制限しようとしました(つまり、既存の値を保持し、NA値のみを入力します)が、このコードを使用しても機能しませんでした。
df$size2 <- ifelse(is.na(df$size2), ifelse(df$type == "C", 2*df$size, NA), NA)
誰かアイデアはありますか?「is.na(df $ size2)」と「ifelse(df $ type == "C"」である種のANDステートメントを使用することは可能ですか?
どうもありがとう!