楼主: camping9
6714 5

诚心求教 R中数据框的使用 [推广有奖]

  • 0关注
  • 0粉丝

大专生

68%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
908 点
帖子
73
精华
0
在线时间
23 小时
注册时间
2007-3-27
最后登录
2017-2-15

楼主
camping9 发表于 2008-8-11 21:06:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

请教R中如何把数据框数据转化为向量形式:

数据如下(抬头是年份,月份,年均,调整后的年均数) :

Year   Jan.   Feb.  March  April   May    June   July   Aug.  Sept.   Oct.   Nov.   Dec. Annual Annual-Fit
1958 -99.99 -99.99 315.71 317.45 317.50 -99.99 315.86 314.93 313.19 -99.99 313.34 314.67 -99.99 -99.99
1959 315.58 316.47 316.65 317.71 318.29 318.16 316.55 314.80 313.84 313.34 314.81 315.59 315.98 316.00
1960 316.43 316.97 317.58 319.03 320.03 319.59 318.18 315.91 314.16 313.83 315.00 316.19 316.91 316.91

我把数据存成了.txt文件,然后在R 中用read.table调用。

我希望把所有这些数变成一个向量,用于作图之类的操作.

可是即使作为data frame把第一列和最后两列去掉后,剩下的数据仍然是一个数据框. 请问怎样才能提取其中的数据呢?最好是得到一个列向量,显示从1958年1月到1960年12月的数据.

非常感谢先!我已经完全没有办法了,靠大家的帮忙了!多谢!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据框 Annual April March Frame 数据 求教 诚心

回帖推荐

sheepmiemie 发表于5楼  查看完整内容

原来您的.txt文件是长成那样的……那就稍事修改吧。这回从原始的.txt文件做起。设文件名为data.txt,文件路径为d:\data.txt,那么完整的命令行为:> x=read.table("d:/data.txt",header=TRUE)> matrix=rbind(x$Jan.,x$Feb.,x$March,x$April,x$May,x$June,x$July,x$Aug.,x$Sept.,x$Oct.,x$Nov.,x$Dec.)> vector=as.vector(matrix)这样应当OK了。如上操作,至少在我的R2.7上是成功的。总之都是些细节问题,稍加注意或调整就好, ...

本帖被以下文库推荐

沙发
sheepmiemie 发表于 2008-8-11 21:57:00

方法很多,仅列一个。

设原完整的数据框为df(不要删去什么行列)。

> matrix=rbind(df$Jan.,df$Feb.,df$March,df$April,df$May,df$June,df$July,df$Aug.,df$Sept.,df$Oct.,df$Nov.,df$Dec.)

> vector=as.vector(matrix)

vector即为您要的向量。

[此贴子已经被作者于2008-8-11 22:02:49编辑过]

[img]http://i972.photobucket.com/albums/ae202/sheepmiemie/d50d789d.jpg

藤椅
camping9 发表于 2008-8-11 22:20:00

好像不行啊。

x$Jan.的结果是NULL,所以matrix的结果也是NULL。

您的意思是不是把每个月份对应的那列的值提取出来,然后合并成一个向量阿?这里Jan. Feb.这些标签在行的位置,不知列的位置,所以可能不行吧。

我希望得到的是第一行的值接着第二行的值,然后接着第三行的值,诸如此类,构成一个新的列向量。

请指教。谢谢!

板凳
camping9 发表于 2008-8-11 22:32:00

我是把数据直接粘贴到记事本里,存成.txt文件。

在R中用read.tablel调入数据,记作x,显示的数据如下:

     V1     V2     V3     V4     V5     V6     V7     V8     V9    V10    V11    V12
1  Year   Jan.   Feb.  March  April    May   June   July   Aug.  Sept.   Oct.   Nov.
2  1958 -99.99 -99.99 315.71 317.45 317.50 -99.99 315.86 314.93 313.19 -99.99 313.34
3  1959 315.58 316.47 316.65 317.71 318.29 318.16 316.55 314.80 313.84 313.34 314.81
4  1960 316.43 316.97 317.58 319.03 320.03 319.59 318.18 315.91 314.16 313.83 315.00

看过class,是数据框。

x$V2是三年的一月份数据,以此类推。

若用命令 matrix=rbind(x$V2,x$V3,x$V4,x$V5,x$V6,x$V7,x$V8,x$V9,x$V10,x$V11,x$V12,x$V13)

matrix的值都是正整数,不再是原来的数据。

奇怪奇怪。

请大家帮忙!多谢!

报纸
sheepmiemie 发表于 2008-8-11 23:29:00

原来您的.txt文件是长成那样的……那就稍事修改吧。这回从原始的.txt文件做起。设文件名为data.txt,文件路径为d:\data.txt,那么完整的命令行为:

> x=read.table("d:/data.txt",header=TRUE)

> matrix=rbind(x$Jan.,x$Feb.,x$March,x$April,x$May,x$June,x$July,x$Aug.,x$Sept.,x$Oct.,x$Nov.,x$Dec.)

> vector=as.vector(matrix)

这样应当OK了。如上操作,至少在我的R2.7上是成功的。总之都是些细节问题,稍加注意或调整就好,不必太过介怀。

至于楼主在4楼的命令为何会均为正整数,想来是引用的行中包含字符串……

[此贴子已经被作者于2008-8-11 23:33:54编辑过]

已有 1 人评分论坛币 学术水平 热心指数 收起 理由
crystal8832 + 10 + 1 + 1 热心帮助其他会员

总评分: 论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

[img]http://i972.photobucket.com/albums/ae202/sheepmiemie/d50d789d.jpg

地板
camping9 发表于 2008-8-11 23:38:00

这次有用了。原来header=TRUE这么重要!非常感谢!

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

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