r - 新手有一个关于数据框列名的问题
问题描述
我是 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”
解决方案
你是如何导入数据的?您应该能够在导入数据本身时解决此问题。也许添加
header = TRUE
就足够了。导入 use
stringsAsFactors = FALSE
时,将避免将字符串值转换为因子。最后,如果您在第 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)
推荐阅读
- python - 如果它匹配一个单词,则用列表替换 pandas Dataframe 列值
- php - 在 MySQL 中仅显示与供应商相关的消息
- sql - 将列的结果集转换为oracle中的许多列名
- java - Selenium 找不到 css/类名选择器
- php - Laravel Eloquent - 使用动态数量的 WHERE() 条件进行查询
- php - Godaddy 上的 Laravel 5.5。产生错误 500。内部服务器错误
- android - 如何有条件地使android APP作为启动器
- sql - What does a concatenate operator do inside a INSTR function?
- mysql - 如何在 mysql 中 N 秒后自动终止长时间运行的 MySQL 查询?
- sql - 匹配以特定字符结尾的东西,但不是那些在结束字符前面有东西的东西