我有一个csv文件,当我使用此命令
SOLK<-read.table('Book1.csv',header=TRUE,sep=';')
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出
> SOLK
Time Close Volume
1 10:27:03,6 0,99 1000
2 10:32:58,4 0,98 100
3 10:34:16,9 0,98 600
4 10:35:46,0 0,97 500
5 10:35:50,6 0,96 50
6 10:35:50,6 0,96 1000
7 10:36:10,3 0,95 40
8 10:36:10,3 0,95 100
9 10:36:10,4 0,95 500
10 10:36:10,4 0,95 100
. . . .
. . . .
. . . .
285 17:09:44,0 0,96 404
Run Code Online (Sandbox Code Playgroud)
该str(SOLK)结果这
'data.frame': 285 obs. of 3 variables:
$ Time : Factor w/ 174 levels …Run Code Online (Sandbox Code Playgroud) 我们已经看到许多关于如何在将因子转换为数字(例如this和this )时保存小数位的问题。但我没有看到任何对字符数据而不是因子数据执行相同操作的内容。以下是我尝试过但没有成功的方法:
f1 <- c("402313.01399128098", "402896.30908451998", "403165.63827027398", "403169.06116369402", "402891.96329268801", "402239.74412469601",
"402271.54950727499", "402313.01399128098")
as.numeric(as.character(f1)) # does not work
f2 <- as.factor(f1)
as.numeric(as.character(f2)) # my decimals are GONE
f3 <- levels(f2)
as.numeric(f3) # my decimals are gone again
Run Code Online (Sandbox Code Playgroud)
我明白了
[1] 402239.7 402271.5 402313.0 402892.0 402896.3 403165.6 403169.1
Run Code Online (Sandbox Code Playgroud)
没有丢失小数位。但我不知道为什么它没有显示。和options(digits = 15)可以看到所有的小数。
教训options():你可以在决定问这样的问题之前就跑。