找回密码
 立即注册
查看: 9348|回复: 5

R语言的数据导入及数据类型转换问题

[复制链接]
发表于 2015-9-30 09:10:46 | 显示全部楼层 |阅读模式
本帖最后由 无量小蜜蜂 于 2015-9-30 09:13 编辑

各位好!新人报到,首次发帖求助。
主要有三个关于R语言的问题:
当导入ORYZA(水稻模拟模型)输出文件“res.dat"时,格式如下:
* OUTPUT TABLE NUMBER  :  0 (=FIRST OUTPUT TABLE)
* OUTPUT TABLE FORMAT  : TABLE OUTPUT      
* Simulation results

      TIME          LAI         WAGT          WSO      LAI_OBS      WSO_OBS     WAGT_OBS   

   176.000      0.10000      2.00000E-02   0.0000            -            -            -   
   177.000      0.11466       4.8328       0.0000            -            -            -   
   178.000      0.13308       10.340       0.0000            -            -            -   
。。。(省略中间)
   279.000       2.2735       13875.       7030.2            -            -            -   
   280.000       2.2428       14046.       7212.7            -            -            -   
WARNING from ORYZA2000:
Please check your model and weather log files!

(1)代码为w<-read.table("res.dat",sep="",header=TRUE, comment.char="*")时,提示列数大于列的名字,这是什么原因?
(2)代码为w<-read.table("res.dat",sep="",header=FALSE, comment.char="*")时,提示最后一行的列数不够,这主要是被导入文件最后一行是字符且不是注释,因此无法过滤掉,请问除了预处理手动将其删除,有合适的方法用代码将其过滤掉么?
(3)代码为w<-read.table("res.dat",sep="",header=FALSE, nrows=105,comment.char="*")时,能够顺利导入数据,但是最后三列中有”-“字符,因此这三列的数据类型不是numeric,无法进行计算,如果用as.numeric函数将其强制转换,则变成1~9之间的整数,这是为什么?

R语言初学,请大家多多指教,不胜感激!

回复

使用道具 举报

发表于 2015-9-30 13:15:47 | 显示全部楼层
小弟木有您的ORYZA(水稻模拟模型)
直接抓您贴的文字存成“res.dat"
去试了一下 (sep=”\n”), 是ok的喔
> w<-read.table("res.dat",sep="\n",header=FALSE, comment.char="*")
> w
                                                                                            V1
1       TIME          LAI         WAGT          WSO      LAI_OBS      WSO_OBS     WAGT_OBS   
2    176.000      0.10000      2.00000E-02   0.0000            -            -            -   
3    177.000      0.11466       4.8328       0.0000            -            -            -   
4     178.000      0.13308       10.340       0.0000            -            -            -   
5    279.000       2.2735       13875.       7030.2            -            -            -   
6    280.000       2.2428       14046.       7212.7            -            -            -   
7                                                                      WARNING from ORYZA2000:
8                                               Please check your model and weather log files!

FYI
George
回复

使用道具 举报

 楼主| 发表于 2015-9-30 15:15:47 | 显示全部楼层
您好,首先谢谢您的回复。
您说的这种写法是能导入,但是把header=TRUE之后就不可以了,且这种方式导进去的数据类型不是numeric,无法直接进行数值计算。
另外,最后一行的” WARNING from ORYZA2000: Please check your model and weather log files!"无法过滤掉。
这里我把“res.dat”源文件附上,希望在这里能够经过讨论学习解决这个问题。


res.zip

1.97 KB, 下载次数: 1

回复

使用道具 举报

发表于 2015-9-30 18:35:46 | 显示全部楼层
N有资料方便很多,以下即可

w<-read.table("res.dat",sep="\n",header=TRUE, comment.char="*",blank.lines.skip=TRUE,strip.white=TRUE)

blank.lines.skip=TRUE 才可成功使用header=TRUE因您开头有个空行,
另strip.white=TRUE才可去除header后紧跟的空白行

至于最后2行的” WARNING from ORYZA2000: Please check your model and weather log files!"您只有以下方式手动去除

w2<-head(w,n=-2)

不过R应可关闭WARNING的吧

FYI
George
回复

使用道具 举报

 楼主| 发表于 2015-10-8 16:12:14 | 显示全部楼层
我按照您说的试了一下,还是不能解决问题。不过非常谢谢您的热心回帖~~

回复

使用道具 举报

发表于 2015-10-9 10:32:20 | 显示全部楼层
不懂?
小弟实测OK的
> w<-read.table("res.dat",sep="\n",header=TRUE, comment.char="*",blank.lines.skip=TRUE,strip.white=TRUE)
> w
       TIME..........LAI.........WAGT..........WSO......LAI_OBS......WSO_OBS.....WAGT_OBS
1   176.000      0.10000      2.00000E-02   0.0000            -            -            -
2   177.000      0.11466       4.8328       0.0000            -            -            -
3   178.000      0.13308       10.340       0.0000            -            -            -
4   179.000      0.15520       16.716       0.0000            -            -            -
5   180.000      0.18167       24.229       0.0000            -            -            -
6   181.000      0.20892       35.164       0.0000            -            -            -
7   182.000      0.24013       47.690       0.0000            -            -            -
8   183.000      0.27701       61.850       0.0000            -            -            -
9   184.000      0.32042       78.318       0.0000            -            -            -
10  185.000      0.36765       97.307       0.0000            -            -            -
11  186.000      0.42163       118.85       0.0000            -            -            -
12  187.000      0.48050       143.34       0.0000            -            -            -
13  188.000      0.54929       171.58       0.0000            -            -            -
14  189.000      0.62933       203.28       0.0000            -            -            -
15  190.000      0.72127       240.32       0.0000            -            -            -
16  191.000      0.82426       281.96       0.0000            -            -            -
17  192.000      0.93905       328.32       0.0000            -            -            -
18  193.000       1.0692       381.00       0.0000            -            -            -
19  194.000       1.1384       440.22       0.0000            -            -            -
20  195.000       1.2426       503.07       0.0000            -            -            -
21  196.000       1.3507       571.25       0.0000            -            -            -
22  197.000       1.4516       638.22       0.0000            -            -            -
23  198.000       1.5474       705.93       0.0000            -            -            -
24  199.000       1.6465       778.80       0.0000            -            -            -
25  200.000       1.7500       857.01       0.0000            -            -            -
26  201.000       1.8496       934.89       0.0000            -            -            -
27  202.000      0.12947       166.62       0.0000            -            -            -
28  203.000      0.12947       174.75       0.0000            -            -            -
29  204.000      0.12947       188.95       0.0000            -            -            -
30  205.000      0.12947       202.73       0.0000            -            -            -
31  206.000      0.12947       216.46       0.0000            -            -            -
32  207.000      0.12947       230.23       0.0000            -            -            -
33  208.000      0.12947       243.79       0.0000            -            -            -
34  209.000      0.14892       257.47       0.0000            -            -            -
35  210.000      0.17105       273.35       0.0000            -            -            -
36  211.000      0.19624       291.14       0.0000            -            -            -
37  212.000      0.22398       311.60       0.0000            -            -            -
38  213.000      0.25531       334.69       0.0000       1.0900       0.0000       766.87
39  214.000      0.28892       360.64       0.0000            -            -            -
40  215.000      0.33023       391.01       0.0000            -            -            -
41  216.000      0.38207       427.35       0.0000            -            -            -
42  217.000      0.44577       462.57       0.0000            -            -            -
43  218.000      0.52240       495.12       0.0000            -            -            -
44  219.000      0.60148       553.82       0.0000            -            -            -
45  220.000      0.69479       620.99       0.0000       2.9700       0.0000       2100.9
46  221.000      0.80257       698.04       0.0000            -            -            -
47  222.000      0.92207       785.04       0.0000            -            -            -
48  223.000       1.0732       850.34       0.0000            -            -            -
49  224.000       1.0935       932.20       0.0000            -            -            -
50  225.000       1.1823       1018.5       0.0000            -            -            -
51  226.000       1.3042       1141.8       0.0000            -            -            -
52  227.000       1.4364       1279.3       0.0000            -            -            -
53  228.000       1.5742       1426.1       0.0000            -            -            -
54  229.000       1.7163       1581.0       0.0000            -            -            -
55  230.000       1.8695       1751.7       0.0000            -            -            -
56  231.000       2.0170       1928.9       0.0000            -            -            -
57  232.000       2.1729       2115.6       0.0000            -            -            -
58  233.000       2.3372       2317.8       0.0000            -            -            -
59  234.000       2.5044       2531.2       0.0000       7.8900       0.0000       6379.8
60  235.000       2.6729       2758.3       0.0000            -            -            -
61  236.000       2.7914       2936.8       0.0000            -            -            -
62  237.000       2.9470       3167.4       0.0000            -            -            -
63  238.000       3.1441       3460.0       0.0000            -            -            -
64  239.000       3.3270       3751.6       0.0000            -            -            -
65  240.000       3.5010       4051.2       2.1475            -            -            -
66  241.000       3.6578       4359.2       11.945            -            -            -
67  242.000       3.7924       4669.1       29.512            -            -            -
68  243.000       3.9114       4990.9       55.629            -            -            -
69  244.000       4.0087       5315.5       89.876            -            -            -
70  245.000       4.0734       5620.2       129.48            -            -            -
71  246.000       4.1174       5923.7       176.08            -            -            -
72  247.000       4.1362       6210.7       226.62            -            -            -
73  248.000       4.1194       6444.3       273.06            -            -            -
74  249.000       4.1286       6812.4       353.53       7.4000       0.0000       8851.0
75  250.000       4.1177       7179.6       441.21            -            -            -
76  251.000       4.0857       7535.8       533.47            -            -            -
77  252.000       4.0275       7864.7       626.34            -            -            -
78  253.000       3.9485       8175.4       721.44            -            -            -
79  254.000       3.8514       8471.7       819.15            -            -            -
80  255.000       3.7411       8725.8       961.40            -            -            -
81  256.000       3.6284       8997.4       1168.7            -            -            -
82  257.000       3.5243       9196.1       1383.4            -            -            -
83  258.000       3.4275       9379.7       1628.5       6.3800       2200.4       13200.
84  259.000       3.3389       9663.7       1990.5            -            -            -
85  260.000       3.2550       9943.8       2364.9            -            -            -
86  261.000       3.1754       10217.       2723.1            -            -            -
87  262.000       3.0999       10435.       3017.2            -            -            -
88  263.000       3.0283       10687.       3338.7            -            -            -
89  264.000       2.9608       10942.       3655.3            -            -            -
90  265.000       2.8966       11185.       3954.2            -            -            -
91  266.000       2.8360       11349.       4167.7            -            -            -
92  267.000       2.7787       11516.       4380.3            -            -            -
93  268.000       2.7242       11677.       4581.3            -            -            -
94  269.000       2.6725       11832.       4773.0            -            -            -
95  270.000       2.6234       12033.       5006.8            -            -            -
96  271.000       2.5766       12247.       5251.1            -            -            -
97  272.000       2.5321       12458.       5488.3            -            -            -
98  273.000       2.4898       12669.       5723.2            -            -            -
99  274.000       2.4496       12887.       5963.3            -            -            -
100 275.000       2.4112       13101.       6196.4            -            -            -
101 276.000       2.3744       13308.       6421.1            -            -            -
102 277.000       2.3392       13510.       6639.1            -            -            -
103 278.000       2.3056       13683.       6825.8            -            -            -
104 279.000       2.2735       13875.       7030.2            -            -            -
105 280.000       2.2428       14046.       7212.7            -            -            -
106                                                               WARNING from ORYZA2000:
107                                        Please check your model and weather log files!
> w2<-head(w,n=-2)
> w2
       TIME..........LAI.........WAGT..........WSO......LAI_OBS......WSO_OBS.....WAGT_OBS
1   176.000      0.10000      2.00000E-02   0.0000            -            -            -
2   177.000      0.11466       4.8328       0.0000            -            -            -
3   178.000      0.13308       10.340       0.0000            -            -            -
4   179.000      0.15520       16.716       0.0000            -            -            -
5   180.000      0.18167       24.229       0.0000            -            -            -
6   181.000      0.20892       35.164       0.0000            -            -            -
7   182.000      0.24013       47.690       0.0000            -            -            -
8   183.000      0.27701       61.850       0.0000            -            -            -
9   184.000      0.32042       78.318       0.0000            -            -            -
10  185.000      0.36765       97.307       0.0000            -            -            -
11  186.000      0.42163       118.85       0.0000            -            -            -
12  187.000      0.48050       143.34       0.0000            -            -            -
13  188.000      0.54929       171.58       0.0000            -            -            -
14  189.000      0.62933       203.28       0.0000            -            -            -
15  190.000      0.72127       240.32       0.0000            -            -            -
16  191.000      0.82426       281.96       0.0000            -            -            -
17  192.000      0.93905       328.32       0.0000            -            -            -
18  193.000       1.0692       381.00       0.0000            -            -            -
19  194.000       1.1384       440.22       0.0000            -            -            -
20  195.000       1.2426       503.07       0.0000            -            -            -
21  196.000       1.3507       571.25       0.0000            -            -            -
22  197.000       1.4516       638.22       0.0000            -            -            -
23  198.000       1.5474       705.93       0.0000            -            -            -
24  199.000       1.6465       778.80       0.0000            -            -            -
25  200.000       1.7500       857.01       0.0000            -            -            -
26  201.000       1.8496       934.89       0.0000            -            -            -
27  202.000      0.12947       166.62       0.0000            -            -            -
28  203.000      0.12947       174.75       0.0000            -            -            -
29  204.000      0.12947       188.95       0.0000            -            -            -
30  205.000      0.12947       202.73       0.0000            -            -            -
31  206.000      0.12947       216.46       0.0000            -            -            -
32  207.000      0.12947       230.23       0.0000            -            -            -
33  208.000      0.12947       243.79       0.0000            -            -            -
34  209.000      0.14892       257.47       0.0000            -            -            -
35  210.000      0.17105       273.35       0.0000            -            -            -
36  211.000      0.19624       291.14       0.0000            -            -            -
37  212.000      0.22398       311.60       0.0000            -            -            -
38  213.000      0.25531       334.69       0.0000       1.0900       0.0000       766.87
39  214.000      0.28892       360.64       0.0000            -            -            -
40  215.000      0.33023       391.01       0.0000            -            -            -
41  216.000      0.38207       427.35       0.0000            -            -            -
42  217.000      0.44577       462.57       0.0000            -            -            -
43  218.000      0.52240       495.12       0.0000            -            -            -
44  219.000      0.60148       553.82       0.0000            -            -            -
45  220.000      0.69479       620.99       0.0000       2.9700       0.0000       2100.9
46  221.000      0.80257       698.04       0.0000            -            -            -
47  222.000      0.92207       785.04       0.0000            -            -            -
48  223.000       1.0732       850.34       0.0000            -            -            -
49  224.000       1.0935       932.20       0.0000            -            -            -
50  225.000       1.1823       1018.5       0.0000            -            -            -
51  226.000       1.3042       1141.8       0.0000            -            -            -
52  227.000       1.4364       1279.3       0.0000            -            -            -
53  228.000       1.5742       1426.1       0.0000            -            -            -
54  229.000       1.7163       1581.0       0.0000            -            -            -
55  230.000       1.8695       1751.7       0.0000            -            -            -
56  231.000       2.0170       1928.9       0.0000            -            -            -
57  232.000       2.1729       2115.6       0.0000            -            -            -
58  233.000       2.3372       2317.8       0.0000            -            -            -
59  234.000       2.5044       2531.2       0.0000       7.8900       0.0000       6379.8
60  235.000       2.6729       2758.3       0.0000            -            -            -
61  236.000       2.7914       2936.8       0.0000            -            -            -
62  237.000       2.9470       3167.4       0.0000            -            -            -
63  238.000       3.1441       3460.0       0.0000            -            -            -
64  239.000       3.3270       3751.6       0.0000            -            -            -
65  240.000       3.5010       4051.2       2.1475            -            -            -
66  241.000       3.6578       4359.2       11.945            -            -            -
67  242.000       3.7924       4669.1       29.512            -            -            -
68  243.000       3.9114       4990.9       55.629            -            -            -
69  244.000       4.0087       5315.5       89.876            -            -            -
70  245.000       4.0734       5620.2       129.48            -            -            -
71  246.000       4.1174       5923.7       176.08            -            -            -
72  247.000       4.1362       6210.7       226.62            -            -            -
73  248.000       4.1194       6444.3       273.06            -            -            -
74  249.000       4.1286       6812.4       353.53       7.4000       0.0000       8851.0
75  250.000       4.1177       7179.6       441.21            -            -            -
76  251.000       4.0857       7535.8       533.47            -            -            -
77  252.000       4.0275       7864.7       626.34            -            -            -
78  253.000       3.9485       8175.4       721.44            -            -            -
79  254.000       3.8514       8471.7       819.15            -            -            -
80  255.000       3.7411       8725.8       961.40            -            -            -
81  256.000       3.6284       8997.4       1168.7            -            -            -
82  257.000       3.5243       9196.1       1383.4            -            -            -
83  258.000       3.4275       9379.7       1628.5       6.3800       2200.4       13200.
84  259.000       3.3389       9663.7       1990.5            -            -            -
85  260.000       3.2550       9943.8       2364.9            -            -            -
86  261.000       3.1754       10217.       2723.1            -            -            -
87  262.000       3.0999       10435.       3017.2            -            -            -
88  263.000       3.0283       10687.       3338.7            -            -            -
89  264.000       2.9608       10942.       3655.3            -            -            -
90  265.000       2.8966       11185.       3954.2            -            -            -
91  266.000       2.8360       11349.       4167.7            -            -            -
92  267.000       2.7787       11516.       4380.3            -            -            -
93  268.000       2.7242       11677.       4581.3            -            -            -
94  269.000       2.6725       11832.       4773.0            -            -            -
95  270.000       2.6234       12033.       5006.8            -            -            -
96  271.000       2.5766       12247.       5251.1            -            -            -
97  272.000       2.5321       12458.       5488.3            -            -            -
98  273.000       2.4898       12669.       5723.2            -            -            -
99  274.000       2.4496       12887.       5963.3            -            -            -
100 275.000       2.4112       13101.       6196.4            -            -            -
101 276.000       2.3744       13308.       6421.1            -            -            -
102 277.000       2.3392       13510.       6639.1            -            -            -
103 278.000       2.3056       13683.       6825.8            -            -            -
104 279.000       2.2735       13875.       7030.2            -            -            -
105 280.000       2.2428       14046.       7212.7            -            -            -

>
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2025-5-7 04:17 , Processed in 0.025646 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表