如果R中的第一个小数点为零,如何转换为整数?

如果R中的第一个小数点为零,如何转换为整数?,r,integer,decimal,R,Integer,Decimal,我有一组向量中的数字,其中第一个和后面的数字都是零。如何将它们转换为整数并进行计数? 我一直在寻找一个函数来在R中实现这一点,但似乎没有 numbers <- c(2.857700, 3.566220, 3.071429, 3.652143, 3.587585, 3.317100, 3.500000, 4.047454, 3.700000, 1.000000, 1.000000) 数字也许是这样的 numbers <- c(2.857700, 3.566220, 3.071429,

我有一组向量中的数字,其中第一个和后面的数字都是零。如何将它们转换为整数并进行计数?
我一直在寻找一个函数来在R中实现这一点,但似乎没有

numbers <- c(2.857700, 3.566220, 3.071429, 3.652143, 3.587585, 3.317100, 3.500000, 4.047454, 3.700000, 1.000000, 1.000000)

数字也许是这样的

numbers <- c(2.857700, 3.566220, 3.071429, 3.652143, 3.587585, 3.317100, 3.500000, 4.047454, 3.700000, 1.000000, 1.000000)

sum(floor((numbers - floor(numbers)) * 10) == 0)
#[1] 4

也许是这样的

numbers <- c(2.857700, 3.566220, 3.071429, 3.652143, 3.587585, 3.317100, 3.500000, 4.047454, 3.700000, 1.000000, 1.000000)

sum(floor((numbers - floor(numbers)) * 10) == 0)
#[1] 4

您的预期产量是多少?预期产量是:2.857700、3.566220、3.071429、3.652143、3.587585、3.317100、3.500000、4.047454、3.700000、1、1。然后我想计算整数的数量,可能是使用
sum(numbers==as.integer())
。最终输出应该是2,因为向量中只有2个整数。
numbers%>%{round(..=.}
首先,R不能在同一个向量中混合整数和浮点数。它们大多数都是同一类型的。所以“整数”将打印为“.0000”。与其说“第一个小数点是零”,不如说你的意思是“小数点后的第一个数字是零”。但“1.005”显然不是“整数”,会发生什么呢。为什么需要转换它们?只是为了显示吗?你说得对@MrFlick,我想说“小数点后的第一个数字是零”。我不介意第一个数字后会发生什么。如果第一个数字为零,则应将其转换为整数。我需要数一数我以后要做多少个整数。你的预期输出是什么?预期输出是:2.857700,3.566220,3.071429,3.652143,3.587585,3.317100,3.500000,4.047454,3.700000,1,1。然后我想计算整数的数量,可能是使用
sum(numbers==as.integer())
。最终输出应该是2,因为向量中只有2个整数。
numbers%>%{round(..=.}
首先,R不能在同一个向量中混合整数和浮点数。它们大多数都是同一类型的。所以“整数”将打印为“.0000”。与其说“第一个小数点是零”,不如说你的意思是“小数点后的第一个数字是零”。但“1.005”显然不是“整数”,会发生什么呢。为什么需要转换它们?只是为了显示吗?你说得对@MrFlick,我想说“小数点后的第一个数字是零”。我不介意第一个数字后会发生什么。如果第一个数字为零,则应将其转换为整数。我需要数一数我以后要做多少个整数。谢谢你的帮助!然而,我刚刚发现,我还需要计算第一个数字和后续数字为零的数字。@TomasMarina您需要给出一个具有预期输出的可复制示例;我不知道你的意思。请编辑原始问题。在本例中,输出应为2<代码>数字@TomasMarina不清楚。“第一个和后续数字为零的数字”您的意思是要按顺序测试小数点后的数字是否越来越多?还是小数点后的所有数字都是零?后一种情况很简单(
round(numbers)==numbers
)。@TomasMarina这听起来与您发布的原始问题非常不同;改变一个问题的主要问题陈述通常被认为是拙劣的形式,因为你基本上是在浪费其他潜在的、所以一直试图帮助你的受访者的时间。除此之外,这听起来像是一个微不足道的求和(舍入(数字)=数字)
,这是@OganM早些时候发布的评论。谢谢你的帮助!然而,我刚刚发现,我还需要计算第一个数字和后续数字为零的数字。@TomasMarina您需要给出一个具有预期输出的可复制示例;我不知道你的意思。请编辑原始问题。在本例中,输出应为2<代码>数字@TomasMarina不清楚。“第一个和后续数字为零的数字”您的意思是要按顺序测试小数点后的数字是否越来越多?还是小数点后的所有数字都是零?后一种情况很简单(
round(numbers)==numbers
)。@TomasMarina这听起来与您发布的原始问题非常不同;改变一个问题的主要问题陈述通常被认为是拙劣的形式,因为你基本上是在浪费其他潜在的、所以一直试图帮助你的受访者的时间。撇开这一点不谈,这听起来像是一个微不足道的求和(舍入(数字)=数字),这是@OganM早前发布的一条评论。