-1

データ フレームの行に関数を適用し、列の各要素の値に基づいて値を返そうとしています。実際のコードには多くの変数があるため、各変数に名前を付けるのではなく、データフレーム全体を渡すことをお勧めします。これは簡単な例です。

試してみましpurrr map_dblrowwiseが、どちらも機能しません。何か提案はありますか?

#sample df
df <- data.frame(Y=c("A","B","B","A","B"),
                  X=c(1,5,8,23,31))

#required result
Res <- data.frame(Y=c("A","B","B","A","B"),
                  X=c(1,5,8,23,31),
                  NewVal=c(10,500,800,230,3100)
                  )

#use mutate and map or rowwise etc
Res <- df %>%
  mutate(NewVal=map_dbl(.x=.,.f=FnAdd(.)))

Res <- df %>%
  rowwise() %>% 
  mutate(NewVal=FnAdd(.))


#sample fn
FnAdd <- function(Data){

  if(Data$Y=="A"){
    X=Data$X*10
  }  

  if(Data$Y=="B"){
    X=Data$X*100
  } 
  return(X)
}
4

2 に答える 2