- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 R 编程语言。假设,我有以下数据框:
var_1 = rnorm(100,10,10)
var_2 = rnorm(100,10,10)
var_3 = rnorm(100,10,10)
d = data.frame(var_1, var_2, var_3)
head(d)
var_1 var_2 var_3
1 14.251923 14.877801 22.636207
2 7.325137 8.513718 21.021522
3 3.400001 -3.400397 11.274797
4 16.400597 8.623980 9.366115
5 7.065583 13.155570 17.891432
6 21.297912 4.341385 -11.337330
我的问题:对于每个变量中的每个元素,我想用它所属的百分位数(例如第 5、10、15 等)替换该元素。
例如:
a = quantile(d$var_1, c(0.05, 0.10, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1))
b = quantile(d$var_2, c(0.05, 0.10, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1))
c = quantile(d$var_3, c(0.05, 0.10, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1))
new = data.frame(a,b,c)
a b c
5% -0.8806901 -7.40560488 -4.7353920
10% 0.3595086 -3.77910527 -0.6874766
15% 1.1201300 -2.91946322 0.9584040
20% 3.0581928 0.05127097 2.1457693
25% 5.0901641 1.91719913 4.6997966
30% 7.0056228 2.56215345 6.2691894
35% 7.6089831 3.58688942 7.1900823
40% 8.9853805 5.00957881 7.8488446
45% 9.9264540 5.73653135 8.6135093
50% 10.2235212 7.43425669 9.6063344
55% 11.5707533 8.54160196 10.9239040
60% 13.2422940 9.65006232 11.7036647
65% 15.1076889 11.07081528 13.2440004
70% 16.5354881 12.38804922 15.2585324
75% 17.9336020 13.16121940 17.6656208
80% 19.5312682 15.31472178 18.4820207
85% 21.9264905 17.99689941 19.3347983
90% 24.4511364 20.47478783 22.0647173
95% 26.6820271 25.27082341 24.4473033
100% 41.4419744 39.75848302 34.5105183
现在,每当一个变量在每个百分位数范围之间时,我想进行以下替换:
d$var_1 < -0.8806901
, 然后 d$var_1 == as.factor("5th percentile")
d$var_1 > -0.8806901 d$var_1 < 0.3595086
, 然后 d$var_1 == as.factor("10th percentile")
...
d$var_1 > 15.1076889 d$var_1 < 16.5354881
, 然后 d$var_1 == as.factor("65th percentile")
等等
d$var_2 < -7.40560488
, 然后 d$var_2 == as.factor("5th percentile")
等等
d$var_3 < -4.7353920
, 然后 d$var_3 == as.factor("5th percentile")
等等
有人可以告诉我怎么做吗?
最佳答案
这可能是你想要的
apply(d, 2, function(x) paste0( ntile(x, n = 20L) / 20 * 100, "th percentile" ))
输出
var_1 var_2 var_3
[1,] "60th percentile" "100th percentile" "25th percentile"
[2,] "80th percentile" "60th percentile" "100th percentile"
[3,] "45th percentile" "90th percentile" "75th percentile"
[4,] "70th percentile" "85th percentile" "35th percentile"
[5,] "30th percentile" "5th percentile" "55th percentile"
...
补全
library(data.table)
cols = c("var_1", "var_3")
setDT(d)[, (cols) := lapply(.SD, function(x) paste0( ntile(x, n = 20L) / 20 * 100, "th percentile")), .SDcols = cols]
关于R:将数据分配给他们的百分位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70503039/
假设我得到了两个整数 a, b 其中 a 是一个正整数并且小于 b 。我必须找到一种有效的算法,它会在 [a, b] 区间内给出 base2 位数(位数)的总和。例如,在区间 [0, 4] 中,数字之
到目前为止我已经尝试过不同的 autofilter但非选项似乎对我有用,我有许可证号列,其中应该只有 10 位数字,并且 autofilter我正在尝试查找少于或多于 10 位数字的条目, 我将该列转
谁能告诉我检查输入的数字是否为 3 位数字的正则表达式...它也不应该允许字母.... 最佳答案 3 个数字的正则表达式为 ^[0-9]{3}$ 或 ^\d{3}$ 关于javascript - 是否
我不知道这在 SQL Server 中是否可行,但我得问问它 ;-) 我在表 work 中有一个名为 duty 的列。 假设 Work.Duty 包含不同的数字,例如 (1, 2, 3, 20, 22
我正在运行一个我创建的java程序,它存储用户输入的数据。具体来说,有 4 个数组列表,分别是songName、songArtist、songYear 和songAlbum。我有一个“songYear
我不知道这在 SQL Server 中是否可行,但我得问问它 ;-) 我在表 work 中有一个名为 duty 的列。 假设 Work.Duty 包含不同的数字,例如 (1, 2, 3, 20, 22
给定一个 float ,我想使用半偶数舍入将结果四舍五入到小数点后四位,即四舍五入到下一个偶数的方法。例如,当我有以下代码片段时: #include #include int main(){
有没有一种方法可以在不使用小程序的情况下确定客户端计算机上的 jvm 位数?我确实看到了这个link但这决定了 jvm 版本而不是位数。提前致谢 最佳答案 您可以尝试确定浏览器位数 - 32 位 ja
我正在编写一个程序来计算给定数字的两个二进制表示之间的共同位数。我写的代码是: int common_bits(int a, int b) { static long binaryNo1,binary
如何使表格中的每个单元格的最小宽度为 3 位数字并且不会更大?现在我正在对 min-width 进行硬编码,但我不喜欢对值进行硬编码,因为将来我可能想更改字体。如果需要 Javascript 也没关系
我正在尝试匹配后跟一个空格或制表符和 5 个数字的单词。例如 some noise text off 12345 some noise text again. 另一个例子是: Some noise t
我在从 double 到 string 的转换时遇到问题。 我要转换: double value: 0.0772486324655191 string value: 0.077248632465519
我正在尝试实现一个使用 128 位 key 的密码。 key 计划的一部分是将 key 向右旋转 29 位,但我不确定该怎么做,因为 Java 中没有单一数据类型可以保存整个 key 。我将它存储在两
我正在尝试在 AVX2 中对 128 位数进行左旋转。由于没有直接的方法,我尝试使用左移和右移来完成我的任务。 这是我执行相同操作的代码片段。 l = 4; r = 4
我有一个 int,它的值类似于 1235 和 12890。我只想要这个 int 的前 2 位数字。我怎样才能提取它? 想了半天,想不出什么办法。 最佳答案 减少数字,直到只剩下两位数: while (
TL:DR 我想要紧跟“+”符号的任何行上的前两个数字的语法。 给定以下文本(来自熟悉的实用程序): power_meter-acpi-0 Adapter: ACPI interface power1
因此根据 cplusplus.com,当您通过以下方式将输出流的格式标志设置为科学记数法时 of.setf(ios::scientific) 您应该在指数中看到 3 位加号和一个符号。但是,我的输出似
这个问题在这里已经有了答案: How can I pad a value with leading zeros? (77 个答案) 关闭 9 年前。 如果小时数小于 10 小时,则小时数通常以个位数
我正在使用 moment.js使用根据距离/速度计算的日期时间。我也在使用 moment duration format plugin .当我将值传递给 moment.duration 然后对其进行格
我正在将一个应用程序从 .NET 移植到 Mono 运行时,并且在代码中的某个位置我可以看到一个 float 具有值 158136.422。我对 float 的理解是它是 7 位精度,那么这个数字如何
我是一名优秀的程序员,十分优秀!