首页 > 解决方案 > 新手有一个关于数据框列名的问题

问题描述

我是 R 新手,今天学习了 data.frame。我想使用我的数据框的第一行作为列名,但列名变得非常有线。这是我的数据示例:

a <- data.frame(V1 = c("ENSMUSG00000000001_Gnai3", "0.00"), V2 = c("ENSMUSG00000000003_Pbsn", "0.00"), row.names = c("Gene_id", "P1-3-A1"))
a

结果是:结果_1

我想将第一行作为我的列名,所以我输入:

colnames(a) <- a[1,]

但是列名变成了这样:结果_2

当我使用以下方法调用列名时 colnames(a) ,我得到了:“2”“2”,而不是“ENSMUSG00000000001_Gnai3”、“ENSMUSG00000000003_Pbsn”

标签: r

解决方案


  1. 你是如何导入数据的?您应该能够在导入数据本身时解决此问题。也许添加header = TRUE就足够了。

  2. 导入 usestringsAsFactors = FALSE时,将避免将字符串值转换为因子。

  3. 最后,如果您在第 1 步和第 2 步中无能为力,这里有一种方法可以修复当前设置中的数据。

#Assign column names
colnames(a) <- as.character(unlist(a[1,]))
#Remove 1st row
a <- a[-1, ]
#Change to respective classes
a <- type.convert(a)

推荐阅读