将R向量中的分数转换为小数

将R向量中的分数转换为小数,r,R,这似乎是最容易做到的事情——我真的尝试了我所发现的一切,但没有什么对我有效 我有一个非常简单的分数向量,如下所示: x = c(1/2,5/2,7/2) 我想把这个向量中的值转换成小数 我尝试了我在中发现的东西,但它将我的分数转换为简单的数字,这些数字被四舍五入,如c(1,3,4) 我还尝试了一些库,结果是一样的 我应该提到的一点是,我的向量是一个因子,但如果我将它转换为数字或整数,它也会将值转换为四舍五入的数字 编辑1: 我不确定我的特殊向量有什么不同。当我运行问题中的示例向量时,一切正常。

这似乎是最容易做到的事情——我真的尝试了我所发现的一切,但没有什么对我有效

我有一个非常简单的分数向量,如下所示:

x = c(1/2,5/2,7/2)
我想把这个向量中的值转换成小数

我尝试了我在中发现的东西,但它将我的分数转换为简单的数字,这些数字被四舍五入,如
c(1,3,4)

我还尝试了一些库,结果是一样的

我应该提到的一点是,我的向量是一个因子,但如果我将它转换为数字或整数,它也会将值转换为四舍五入的数字

编辑1:

我不确定我的特殊向量有什么不同。当我运行问题中的示例向量时,一切正常。它实际上是自动计算的。我从csv文件中得到了向量,但它看起来不像是字符向量,因为打印时分数不在引号中

编辑2:

csv似乎将该列视为日期,但当我试图在csv中手动将其转换为数字形式时,它并没有真正转换为分数的结果

编辑3:

我提供的示例似乎并不完全代表我的原始数据。如果您想尝试真实数据的小样本,可以下载csv。此外,我的数据的dput:

structure(c(14L, 13L, 4L, 5L, 8L, 7L, 3L, 8L, 11L, 1L), .Label = c("10/1", 
"12/1", "15/1", "2/1", "3/1", "4/1", "5/1", "5/2", "6/1", "7/1", 
"7/2", "8/1", "8/5", "9/2"), class = "factor")
最后


你有一个字符向量吗?你能告诉我们你已经使用的代码来获得这些整数吗?来自的解决方案很好。你需要先转换成字符。许多复制品that@PierreLafortune-像.character()那样做,然后将其放入sapply中,效果很好。我以为他想从.csv文件中读取?海德的答案已经解决了这个问题。这只是一个变体。我得到:
NA警告消息:强制引入的NAs
:/@Pierre Lafortune使用数字/字符进行求解-它不使用因子变量type@Pierre如果您的编辑在输出时生成其他字符串;)
x = c(1/2,5/2,7/2)
frac <- factor(x)
as.numeric(levels(frac))[frac]
frac <- structure(c(14L, 13L, 4L, 5L, 8L, 7L, 3L, 8L, 11L, 1L), .Label = c("10/1", "12/1", "15/1", "2/1", "3/1", "4/1", "5/1", "5/2", "6/1", "7/1", "7/2", "8/1", "8/5", "9/2"), class = "factor")
labl =attributes(frac)[1]
sapply(as.character(unlist(labl)), function(x) eval(parse(text=x)))