У меня есть фрейм данных с числовыми объектами из таблицы сопряженности:
x=sample(c(0,1),100,replace=T)
y=sample(c(0,1),100,replace=T)
my_table=table(x,y)
x.true=sum(my_table[2,])
y.true=sum(my_table[,2])
x.true.y.true=my_table[2,2]
x.true.y.false=my_table[2,1]
x.false.y.true=my_table[1,2]
x.false.y.false=my_table[1,1]
my_df=data.frame(x.true,y.true,
x.true.y.true,x.true.y.false,
x.false.y.true,x.false.y.false)
Я хочу вывести десятичные точки / конечные нули, но sprintf () не работает, потому что он превращает элементы всимволы:
> sprintf('%.3f',my_df)
[1] "43.000" "55.000" "22.000" "21.000" "33.000" "24.000"
Упаковка в as.numeric также не работает, потому что она просто снова обрезает нули!
> as.numeric(sprintf('%.3f',my_df))
[1] 43 55 22 21 33 24
Даже format.data.frame () не работает!
> format.data.frame(my_df,nsmall=5)
x.true y.true x.true.y.true x.true.y.false x.false.y.true x.false.y.false
1 43 55 22 21 33 24
Как заставить мой фрейм данных, состоящий из числовых объектов, печатать десятичные точки / конечные нули?