1
大きなデータセットがあり、結果をループしてリスト内の列を減算し、新しい列の各行の結果を出力したい。リストから列を減算することによってデータフレームに新しい列を追加する
ref1 <- samples Controls
E_2334188 E_2334207
E_2334202 E_2334221
df1 <-
Chr Start End Feature E_2334188 E_2334202 E_2334207 E_2334221
1 740001 760000 1:740001-760000 1.6832013 0.8346011 -0.23045394 1.5974912
1 760001 780000 1:760001-780000 -0.3231613 -1.8504905 0.13668752 -0.38662600
1 780001 800000 1:780001-800000 -0.3936060 -2.2163153 -0.15266541 -0.60706691
ind <- which(names(df1) %in% ref1$samples)
rnd <- which(names(df1) %in% ref1$controls)
df2 <- df1[,c(1:4)]
df2$newcol <- 0
for (i in 1:nrow(ref1)){
n <- df1[ind]-df1[rnd]
df2$newcol[i] <- n
}
期待結果
df2 <-
Chr Start End Feature E_2334188 E_2334202
1 740001 760000 1:740001-760000 1.913655 -0.7628901
1 760001 780000 1:760001-780000 -0.4598488 -1.463865
1 780001 800000 1:780001-800000 -0.2409406 -1.609248
私は大きなデータセットを持っています。理解しやすくするために、74列でデータをサブセット化する – beginner
@beginnerそれは本当に問題ではありません。 'samples'と 'control's from' ref1 'に列名がある場合、これは基本的に対応する列を' df1 'からサブセット化し、等しいサイズのデータセットを減算します。 – akrun
@beginnerここでは、 'ref1'の同じ行(列名)の列を減算する必要があると仮定しています。 – akrun