r-将数据帧的一行子集从数字中删除零位小数
数据 给定一个数据帧r-将数据帧的一行子集从数字中删除零位小数,r,R,数据 给定一个数据帧 df <- data.frame("id"=c(1,2,3), "a"=c(10.0, 11.2, 12.3),"b"=c(10.1, 11.9, 12.9)) > df id a b 1 1 10.0 10.1 2 2 11.2 11.9 3 3 12.3 12.9 > str(df) 'data.frame': 3 obs. of 3 variables: $ id: num 1 2 3 $ a : num 10
df <- data.frame("id"=c(1,2,3), "a"=c(10.0, 11.2, 12.3),"b"=c(10.1, 11.9, 12.9))
> df
id a b
1 1 10.0 10.1
2 2 11.2 11.9
3 3 12.3 12.9
> str(df)
'data.frame': 3 obs. of 3 variables:
$ id: num 1 2 3
$ a : num 10 11.2 12.3
$ b : num 10.1 11.9 12.9
我“假设”这是有意的,但如何对第一行进行子集,使其保留.0
部分
注释
将两行子集化将保留.0
> df[1:2,]
id a b
1 1 10.0 10.1
2 2 11.2 11.9
我假设您理解这是一个如何打印数字的问题,而不是R如何存储值的问题。无论如何,您可以使用
格式
来确保打印数字:
> format(df[1,], nsmall = 1)
id a b
1 1.0 10.0 10.1
> format(df[1,], nsmall = 2)
id a b
1 1.00 10.00 10.10
此行为的原因与正在打印的行数无关。R将尝试显示尽可能少的小数。但为了提高显示效果,列中的所有数字都将具有相同的位数:
> df2 <- data.frame(a=c(1.00001, 1), b=1:2)
> df2
a b
1 1.00001 1
2 1.00000 2
我假设您理解这是一个如何打印数字的问题,而不是R如何存储值的问题。无论如何,您可以使用
格式
来确保打印数字:
> format(df[1,], nsmall = 1)
id a b
1 1.0 10.0 10.1
> format(df[1,], nsmall = 2)
id a b
1 1.00 10.00 10.10
此行为的原因与正在打印的行数无关。R将尝试显示尽可能少的小数。但为了提高显示效果,列中的所有数字都将具有相同的位数:
> df2 <- data.frame(a=c(1.00001, 1), b=1:2)
> df2
a b
1 1.00001 1
2 1.00000 2
的确我似乎忘记了R的基本知识!的确我似乎忘记了R的基本知识!