0

R データ フレームの列名を含む文字列を使用して基本的な計算を行い、新しい列に変更する方法がわかりません。たとえば、ベースライン値の列と、治療後のタイムポイントを含む他の列があります。異なるタイムポイントが指定されたデータを使用し、プログラムによる解決策が必要なため、これには列名の文字列を使用したいと考えています。

たとえば、私はこのデータ フレームを持っています。以下の mutate 行でいくつかの構文を使用する必要があると思いますが、右側の記述方法を正確に理解できません。'day1_fc' と 'day2_fc' という名前の列で、day1/ベースラインと day2/ベースラインの倍率変化を表す必要があります。

df <- data.frame(day0 = c(1,1,1),
                 day1 = c(2,3,4),
                 day2 = c(3,4,5))

baseline = 'day0'
sym_baseline <- sym(baseline)

post = c('day1', 'day2')
post1 <- post[1]
post2 <- post[2]

df %>% 
  mutate(!!paste0(post1, '_fc' := ?????),
         !!paste0(post2, '_fc') := ?????)

結果を次のようにしたい:

  df <- data.frame(day0 = c(1, 0.5, 2),
                   day1 = c(2, 3, 4),
                   day2 = c(3, 4, 5),
                   day1_fc = c(2, 6, 2),
                   day2_fc = c(3, 8, 2.5))
4

1 に答える 1