【发布时间】:2015-09-22 10:55:33
【问题描述】:
我有一组这样的数据
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"
【问题讨论】:
-
你的数据是data.frame吗?试试
t(sapply(dat, as.numeric)) -
str(your_data)的结果好吗? -
您的值几乎肯定不是数字,尽管它们看起来是。我猜他们是
factor。发布str(x)的结果,其中x是您的data.frame -
您的数据不是数字!那么为什么通过转置它会神奇地变成数字呢?