216行12列のデータフレームがあり、各値が12列目の各要素と216行目の12列目の要素の値の差に等しい新しい列を追加しようとしています(df [ 216,12])。データフレームの縮小バージョン(つまり、216ではなく5列のみ)でこれを実行しようとすると、問題なく機能しましたが、完全なデータセットで正確な処理を実行しようとすると、「 Ops.data.frame(df_final [、12]、df_final [216、12])のエラー:「-」は同じサイズのデータフレームに対してのみ定義されています。なぜそのエラーが発生するのか、またはそれを修正する方法がわかりません。
説明のために、私のデータセットの簡略化されたバージョンは次のとおりです(コードはこの簡略化されたデータセットでは機能しますが、5行ではなく216行の完全なデータセットでは機能しません)。
miRNA<-c("hsa-miR-10a-4373153", "hsa-miR-10b-4395329", "MammU6-4395470_1", "MammU6-4395470_2", "hsa-miR-15a-4373123")
C1<-c(28.005966, 30.806433, 17.341375, 17.40666, 30.039436)
T2<-c(30.973469, 29.236025, 30.41161, 20.914383, 20.904331)
C3<-c(26.322796, 25.542833, 22.460772, 19.972183, 30.409641)
T4<-c(26.441898, 25.837685, 23.158352, 20.379173, 33.81327)
C5<-c(39.750206, 19.901133, 28.180124, 22.668673, 25.748884)
T6<-c(23.004385, 28.472675, 23.81621, 26.433413, 28.851719)
T7<-c(22.239546, 28.741674, 23.754929, 26.015385, 28.16368)
T8<-c(29.590443, 30.041988, 21.323061, 24.272501, 18.099016)
C9<-c(15.856442, 22.64224, 29.629637, 25.374926, 22.356894)
C10<-c(38.137985, 24.753338, 26.986668, 24.578161, 19.223558)
data<-data.frame(miRNA, C1, T2, C3, T4, C5, T6, T7, T8, C9, C10)
View(data)
data$C12<-data[,11]-data[5,11]
問題はそれがであるということですtbl_df
。とは異なりdata.frame
、data[,11]
に折りたたまれませんvector
。それはまだ単一の列を持つtbl_dfです。多くのオプションがあります
unlist(data[,11])- unlist(data[5,11])
再現可能な例を使用する
df1 <- tibble(col1 = 1:5, col2 = 6:10)
df1[, 2] - df1[1, 2]
Ops.data.frame(df1 [、2]、df1 [1、2])のエラー: '-'は同じサイズのデータフレームに対してのみ定義されます
unlist(df1[,2]) - unlist(df1[1,2])
または、drop = TRUE
デフォルトFALSE
でtibbledata.frameにありwhereas in
ます, it is
TRUE`
df1[[2]] - df1[1,2, drop = TRUE]
ここでは[[
、列を次のように抽出するために使用していることに注意してください。vector
または別のオプションは、dplyr
機能を利用することです
library(dplyr)
df1 %>%
mutate_at(2, ~ . - .[2])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加