对不起,重复,但是由于某些原因,显示为here的答案对我不起作用。经过检查,我正在使用的数据表具有字符性质。
这是我的数据表
> dt <- data.table(V1 = c("4", "1", "0", "3"), V2 = c("0/1", "0/1", "1/2", "3/4"))
> dt
V1 V2
1: 4 0/1
2: 1 0/1
3: 0 1/2
4: 3 3/4
> class(dt)
[1] "data.table" "data.frame"
> class(dt$V2)
[1] "character"
如您所见,我对第二列进行了建模,以使元素具有排他格式。我想让第二列为十进制格式,第一列为数字而不是字符,并且最终目标是将两列按行求和。
[当我尝试将其转换为十进制时,它对我的dt没有任何影响-请自行查看
> FractionToDecimal <- function(x) {
+ eval(parse(text=as.character(x)))
+ x
+ }
> sapply(dt$V2, FractionToDecimal)
0/1 0/1 1/2 3/4
"0/1" "0/1" "1/2" "3/4"
> FractionToDecimal(dt$V2)
[1] "0/1" "0/1" "1/2" "3/4"
我使用的[[other method,也无法解决
> dt %>% mutate(V2 = eval(parse(text = V2)))
V1 V2
1 4 0.75
2 1 0.75
3 0 0.75
4 3 0.75
它只是重复错误的结果。有人知道问题出在哪里吗?
如果以后还知道如何将两列都转换为数字/整数格式,这也将有所帮助!
谢谢!