全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6649 5
2008-08-11

请教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月的数据.

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


二维码

扫码加我 拉你入群

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

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

全部回复
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编辑过]

二维码

扫码加我 拉你入群

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

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

2008-8-11 22:20:00

好像不行啊。

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

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

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

请指教。谢谢!

二维码

扫码加我 拉你入群

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

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

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的值都是正整数,不再是原来的数据。

奇怪奇怪。

请大家帮忙!多谢!

二维码

扫码加我 拉你入群

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

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

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编辑过]

二维码

扫码加我 拉你入群

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

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

2008-8-11 23:38:00

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

二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群