楼主: 迷途mitu
8717 9

[问答] 在R里面读取数据时表头相同时怎么读取数据 [推广有奖]

  • 5关注
  • 11粉丝

已卖:142份资源

教授

23%

还不是VIP/贵宾

-

威望
0
论坛币
2399 个
通用积分
21.3486
学术水平
11 点
热心指数
35 点
信用等级
12 点
经验
173 点
帖子
582
精华
0
在线时间
851 小时
注册时间
2010-4-17
最后登录
2022-12-7

楼主
迷途mitu 发表于 2013-6-19 10:18:16 |AI写论文
5论坛币
用R导入CSV格式数据的时候,相同header的列怎么一起读出来或者区分开来,比如我有一个CSV的数据,第一列第一行是“日期”,第二列第一行是“收益率”,第三列第一行也是“收益率”,我用”$收益率“读出来的只有第二列的数据,怎么才能导出第三列的数据呢?

关键词:读取数据 Head 收益率 EAD der 收益率

沙发
hugebear 发表于 2013-6-19 10:26:56
从统计上来讲,最好保证列名不同。
你在你的原始文件里改一下列名应该不困难吧,或者先读入数据,再用names()重命名数据框。

藤椅
迷途mitu 发表于 2013-6-19 10:29:10
hugebear 发表于 2013-6-19 10:26
从统计上来讲,最好保证列名不同。
嗯 不过我们做的一张大的表格里面包含了很多月份的数据 每列的名字都是一样的 没有办法解决吗?

板凳
hugebear 发表于 2013-6-19 10:31:36
方便把数据贴出来么?

报纸
迷途mitu 发表于 2013-6-19 10:46:14
hugebear 发表于 2013-6-19 10:31
方便把数据贴出来么?
数据其实还没有整理完,表格的形式是这样的

地板
qoiqpwqr 发表于 2013-6-19 11:10:43
你用names看一下列名就可以了。一般重复的列名会被自动命名为“收益率.1”

7
迷途mitu 发表于 2013-6-19 11:13:50
qoiqpwqr 发表于 2013-6-19 11:10
你用names看一下列名就可以了。一般重复的列名会被自动命名为“收益率.1”
哦 我看到了 的确可以 但是我想弄清楚这个的主要原因是我要写循环,但是列名如果是“收益率.1””收益率.2“这样的话该怎么写进循环里面呢?

8
hugebear 发表于 2013-6-19 11:17:13
我建议你先不读入表头(用skip = 2), 再另外为读入的数据框命名。
鉴于列名的周期性,可用如下代码创建表头名(仅作阐释,非完全重复你的数据: 假设每个月都有三个变量名"x1", "x2", "x3", 共12个月, 因此这个表格共36列)。
  1. finance <- read.table("original_file.csv", skip = 2)
  2. x <- list()
  3. for(i in 1:12)
  4. {
  5.   x[[i]] <- character(length = 3)
  6. }

  7. for(i in 1:12)
  8. {
  9.   for(j in 1:3)
  10.   {
  11.    x[[i]][j] <- paste("month", i, "x", j, sep = "")
  12.   }
  13. }

  14. names(finance) <- unlist(x)
复制代码

9
迷途mitu 发表于 2013-6-19 11:41:21
hugebear 发表于 2013-6-19 11:17
我建议你先不读入表头(用skip = 2), 再另外为读入的数据框命名。
鉴于列名的周期性,可用如下代码创建表 ...
这也是一个解决的办法,就是要重新给每一列命名我觉得比较麻烦,还是非常感谢啊!

10
daisong 发表于 2013-6-23 23:56:54
我也想到的是读入的时候header=FALSE

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 16:11