【发布时间】:2021-12-30 21:50:50
【问题描述】:
我有一个包含数字的 df 变量,但我需要将其转换为小数
一个例子:
[1] NA NA NA 595 595 5
所以我需要创建一个新变量或对其进行转换以获得以下形式
[1] NA NA NA 5.95 5.95 5.0
但我还没有找到方法,如果有任何帮助,我将不胜感激
我正在寻找方法,但我唯一找到的是一个 stata 命令
destring v1, g(new_var) dpcomma
drop v1
我不明白
str 的结果
num [1:308535] NA NA NA 595 595 5 625 645 59 54 ...
来自 dput 的摘录
515, 555, 478, 665, 635, 555, 608, 578, 633, 62, 59, 608, 498,
603, 54, 638, 565, 625, NA, 545, 613, 573, 543, 653, 523, 568,
508, 635, 625, 598, 62, 565, 545, 655, 628, 52, 588, 598, 55,
598, 55, 578, 515, 64, 54, 54, 625, 565, 608, 588, 618, 535,
603, 663, 558, 638, 59, 518, 54, 613, 495, 535, 51, 543, 613,
583, 58, 593, 498, 568, 538, 525, 653, 555, 588, 56, 505, 54,
618, 56, 623, 508, 595, 6, 585, 518, 545, 525, 603, 588, 575,
568, 568, 588, 595, 593, 565, 535, 563, 643, 57, 645, 608, 608,
555, 57, 54, 555, 61, 528, 623, 653, 618, 528, 563, 63, 538,
52, 563, 51, 538, 525, 558, 568, NA, 523, 623, NA, 603, 555,
48, 633, 575, 583, 54, 578, 56, 65, 525, 5, 595, 663, 618, 59,
603, 525, 54, 555, 625, 528, 538, 67, 64, 528, 623, 615, 565,
548, 65, 508, 653, 63, 58, 553, 553, 548, 575, 553, 538, 583,
565, 613, 608, 68, 55, 605, 675, 585, 533, 565, 515, 525, 568,
【问题讨论】:
-
欢迎来到 Stack Overflow!我们需要更多信息,请:(1)您能否将
str(df$var)或dput(df$var)的结果包含在您的问题中,以便我们可以确切地看到您拥有什么? (2) 你能澄清一下字符串中的所有变量在转换后都应该在小数点左边有一个值吗? (3)您的标题谈到逗号,但我在您的问题中没有看到任何逗号。您的意思是“小数分隔符”(通常是.,但在某些欧洲语言环境中可以是,)? -
我不知道我是否正确理解了这个问题,但似乎你可以将原始变量除以 100。在 R
df$newVar <- df$originalVar / 100 -
@MikeKatz45 我想到了,但我需要将所有数字传递给速率,例如,如果我有 5,我需要它作为 5.0,如果我有 567,我需要它是 5.67,所以如果我将变量除以 100 y 将得到 0.05 而不是 5.0
-
您的逻辑描述不足,但请考虑
ifelse函数:x / ifelse(x < 100, 1, 100)可能是您正在寻找的。span> -
(1) 请不要给出“从 dput 中提取的内容”。最好从数据提取中给出
dput。不同之处在于dput的(未经编辑的)输出对我们立即可用,而您当前的提取仍然需要一些工作才能使用,并且我们在您的对象结构的其余部分中仍然没有上下文。 (2) 请花一点时间来描述一下你所说的“将所有数字传递给一个比率”的意思,这是否意味着任何低于100的东西已经很好,超过100需要被缩放? 我们不知道。
标签: r