1
列はサンプル名(n = 384)に対応し、行は遺伝子エンティティ(n = 180200)に対応するdata.frameというdataOrderを持っています。 t1_、t2_、t3_、t4_とt5_:R:データフレーム内の複数の列名を置換し、数値を保持
sample1 sample2 sample3 sample4 sample5 sample6
ENST00000000233 9 0 3499.51 0 0 0
ENST00000000412 0 0 0.00 0 0 0
ENST00000000442 0 0 0.00 0 0 0
ENST00000001008 0 0 0.00 0 0 0
ENST00000001146 0 0 0.00 0 0 0
ENST00000002125 0 0 0.00 0 0 0
私は、5つの異なる名前に列名(STR sample
)の一部を代用したいと思います。
私は名前を代入するGSUB機能を使用しようとしました:
nameVec <- names(dataOrder)
nameVec <- gsub("sample","t2_",nameVec[1:96])
nameVec <- gsub("sample","t3_",nameVec[97:163])
nameVec <- gsub("sample","t4_",nameVec[164:259])
nameVec <- gsub("sample","t5_",nameVec[260:333])
nameVec <- gsub("sample","t1_",nameVec[334:384])
names(dataOrder) <- nameVec
head(dataOrder)
しかし、私の列名のすべてがNAに置換しました。
タイトルに「サンプル」文字列を置き換えて、数値インデックスを列に入れておくことはできますか?ここで
t1_1 t1_96 t2_97 t2_163 t3_164 t3_259
ENST00000000233 9 0 3499.51 0 0 0
ENST00000000412 0 0 0.00 0 0 0
ENST00000000442 0 0 0.00 0 0 0
ENST00000001008 0 0 0.00 0 0 0
ENST00000001146 0 0 0.00 0 0 0
ENST00000002125 0 0 0.00 0 0 0
は(@RuiBarradasによって書かれた)再生可能なデータの例である:
mydf <-
structure(list(target_id = c("ENST00000000233", "ENST00000000412",
"ENST00000000442", "ENST00000001008", "ENST00000001146", "ENST00000002125"
), sample1 = c(9L, 0L, 0L, 0L, 0L, 0L), sample10 = c(0L, 0L,
0L, 0L, 0L, 0L), sample100 = c(3499.51, 0, 0, 0, 0, 0), sample101 = c(0L,
0L, 0L, 0L, 0L, 0L), sample102 = c(0L, 0L, 0L, 0L, 0L, 0L), sample103 = c(0L,
0L, 0L, 0L, 0L, 0L)), .Names = c("target_id", "sample1", "sample10",
"sample100", "sample101", "sample102", "sample103"), class = "data.frame", row.names = c("1:",
"2:", "3:", "4:", "5:", "6:"))
result <- mydf[-1]
row.names(result) <- mydf$target_id
result
ありがとうございました!
ありがとうございました! –