相关疑难解决方法(0)

如何将包含十进制数的因子列转换为数字?

我有一个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)

r numeric dataframe r-factor

6
推荐指数
3
解决办法
2万
查看次数

在R中将字符转换为数字而不丢失小数

我们已经看到许多关于如何在将因子转换为数字(例如thisthis )时保存小数位的问题。但我没有看到任何对字符数据而不是因子数据执行相同操作的内容。以下是我尝试过但没有成功的方法:

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():你可以在决定问这样的问题之前就跑。

r

3
推荐指数
1
解决办法
7956
查看次数

标签 统计

r ×2

dataframe ×1

numeric ×1

r-factor ×1