我有一组像这样的数据
GSM482075 GSM482076 GSM482077 GSM482078 GSM482079 GSM482080 GSM482081 GSM482082
1 8.79703 8.04291 7.53674 9.94527 8.38775 8.02375 11.1607 10.5481
2 5.66556 6.42794 6.62527 6.19131 5.34138 5.69543 5.9252 5.55675
我想转置并将列转换为行和行,但是当我使用t()时,它会将数值转换为字符串。
1 2
GSM482075 "8.79703" "5.66556"
GSM482076 "8.04291" "6.42794"
GSM482077 "7.53674" "6.62527"
GSM482078 "9.94527" "6.19131"
GSM482079 "8.38775" "5.34138"
GSM482080 "8.02375" "5.69543"
GSM482081 "11.1607" "5.9252"
GSM482082 "10.5481" "5.55675"
我环顾四周,但我还没有找到一种简单的方法来保持数字的数字。我正在考虑剥离标签,但我没有看到任何关于如何做到这一点的答案,除非人们告诉别人不要。有什么建议?感谢
编辑:str(geomatrixsub)第一个对象的结果显示
'data.frame': 2 obs. of 8 variables:
$ GSM482075: chr "8.79703" "5.66556"
$ GSM482076: chr "8.04291" "6.42794"
$ GSM482077: chr "7.53674" "6.62527"
$ GSM482078: chr "9.94527" "6.19131"
$ GSM482079: chr "8.38775" "5.34138"
$ GSM482080: chr "8.02375" "5.69543"
$ GSM482081: chr "11.1607" "5.9252"
$ GSM482082: chr "10.5481" "5.55675"
使用t(geomatrixsub [1:2,])
1 2
GSM482075 "8.79703" "5.66556"
GSM482076 "8.04291" "6.42794"
GSM482077 "7.53674" "6.62527"
GSM482078 "9.94527" "6.19131"
GSM482079 "8.38775" "5.34138"
GSM482080 "8.02375" "5.69543"
GSM482081 "11.1607" "5.9252"
GSM482082 "10.5481" "5.55675"
答案 0 :(得分:1)
我知道这里有几个解决方案reshape2
和tidyr
。我尝试过基础R解决方案。这是它:
t(dat[1:2, ])
1 2
GSM482075 8.79703 5.66556
GSM482076 8.04291 6.42794
GSM482077 7.53674 6.62527
GSM482078 9.94527 6.19131
GSM482079 8.38775 5.34138
GSM482080 8.02375 5.69543
GSM482081 11.16070 5.92520
GSM482082 10.54810 5.55675
我已经使用了提供的数据,用R读取这个代码,这个代码有一个数字数据框但有矩阵我觉得它也应该有效:
dat <- read.table(text = " GSM482075 GSM482076 GSM482077 GSM482078 GSM482079 GSM482080 GSM482081 GSM482082
1 8.79703 8.04291 7.53674 9.94527 8.38775 8.02375 11.1607 10.5481
2 5.66556 6.42794 6.62527 6.19131 5.34138 5.69543 5.9252 5.55675")
答案 1 :(得分:0)
我知道这是一篇旧帖子,但我遇到了同样的问题,我找到了另一种方法。
dat <- read.table(text = " GSM482075 GSM482076 GSM482077 GSM482078 GSM482079 GSM482080 GSM482081 GSM482082
1 8.79703 8.04291 7.53674 9.94527 8.38775 8.02375 11.1607 10.5481
2 5.66556 6.42794 6.62527 6.19131 5.34138 5.69543 5.9252 5.55675")
dat_t = as.data.frame(x = t(dat), stringsAsFactors = FALSE)
> dat_t
1 2
GSM482075 8.79703 5.66556
GSM482076 8.04291 6.42794
GSM482077 7.53674 6.62527
GSM482078 9.94527 6.19131
GSM482079 8.38775 5.34138
GSM482080 8.02375 5.69543
GSM482081 11.16070 5.92520
GSM482082 10.54810 5.55675
原始来源在这里:https://community.rstudio.com/t/how-to-transpose-data-frame-and-retain-variable-data-types/45843