我正在阅读 Linux 的源代码,并且遇到了以下部分:
/*
* This begins the randomizable portion of task_struct. Only
* scheduling-critical items should be added above here.
*/
randomized_struct_fields_start
void *stack;
refcount_t usage;
/* Per task flags (PF_*), defined further below: */
unsigned int flags;
unsigned int ptrace;
Run Code Online (Sandbox Code Playgroud)
我对“randomized_struct_fields_start”感到困惑,它只是一些没有“;”的松散文本,没有数据类型声明,“//”或“/**/”...有人知道这是什么吗?我相信我的问题是关于c语言的,而不是linux,如果我错了,请告诉我,我会在其他地方问这个问题。
我有以下数据框df1:
company_location count
<chr> <int>
1 DE 28
2 JP 6
3 GB 47
4 HN 1
5 US 355
6 HU 1
Run Code Online (Sandbox Code Playgroud)
我想去df2:
company_location count
<chr> <int>
1 DE 28
2 GB 47
3 US 355
4 OTHER 8
Run Code Online (Sandbox Code Playgroud)
df2与 相同,df1但将所有列加在一起,count<10并将它们聚合在一行中,称为OTHER
是否存在这样的东西:一个 group_by() 函数,仅将与特定条件匹配的所有行分组为一组,并将所有其他行保留在仅包含它们的组中?
我一直与 SPSS 和 STata 的合作者一起工作,因此清晰的变量标签对于传达对任何给定变量所做的操作及其记录的内容非常重要。
如何在 tidyverse 上下文中最有效地使用变量标签重命名变量。我可以做到这一点,但看起来很笨拙。
var1<-rnorm(100)
var2<-rnorm(100)
var3<-rnorm(100)
group_var<-sample(c("A", "B"), size=100, replace=T)
other_var1<-rnorm(100)
other_var2<-rnorm(100)
df<-data.frame(var1, var2, var3, group_var, other_var1, other_var2)
library(labelled)
library(tidyverse)
df %>%
set_variable_labels(var1="Measure 1",
var2="Measure 2",
var3="Measure 3",
group_var="Grouping Variable")->df
#Store variable labels
df %>%
select(starts_with("var")) %>%
var_label() %>%
unlist()->variable_labels
variable_labels<-data.frame(name=names(variable_labels), labels=variable_labels)
df %>%
pivot_longer(var1:var3) %>%
left_join(., variable_labels, by="name")
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个rename_with功能在这里发挥作用?这不行。
df %>%
rename_with(., function(x) var_label(x),.cols=var1:var3)
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的 DF:
row_id stn_1 stn_2 stn_3 stn_4 stn_5
1 1 0 1 0 1
2 0 1 0 0 0
3 1 0 0 0 0
4 1 0 1 0 0
5 0 0 0 1 0
Run Code Online (Sandbox Code Playgroud)
我想获得数据中出现的 stn 的百分比。基本上是除 row_id 之外每列中 1 的百分比。
预期输出:
stn percentage
stn_1 .60
stn_2 .20
stn_3 .40
stn_4 .20
stn_5 .20
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 dplyr 中做到这一点?
假设我有一组按行的范围:
| 降低 | 上 |
|---|---|
| -10.4443200 | -8.695751 |
| -10.5356594 | -7.372029 |
| -3.9635740 | -2.661712 |
| -2.7043889 | -1.051237 |
| 0.8921994 | 2.525341 |
| 0.8495998 | 2.982567 |
| 0.9639315 | 3.149708 |
| 1.2656724 | 3.362623 |
| 2.8932368 | 5.332422 |
| 4.6476099 | 5.489882 |
计算彼此重叠的范围对的数量的有效方法是什么?
一种天真的方法是,但由于循环,这对于数百万次比较来说很慢。也许矢量化的使用方式foverlaps是理想的。
library(data.table)
setDT(a)
setkey(a, lower, upper)
for (i in 1:nrow(a)) {
for (j in 1:nrow(a)) {
foverlaps(a[i,], a[j,])
}
}
Run Code Online (Sandbox Code Playgroud)
data=structure(list(lower = c(-10.4443200112593, -10.5356593568179,
-3.96357398513697, -2.70438891891616, 0.892199380698278, 0.849599807772024,
0.963931532617852, 1.2656723800301, 2.89323680524585, 4.64760986325676
), upper = c(-8.69575093847071, -7.37202901360451, -2.66171192367237,
-1.05123670198647, 2.5253413373515, 2.98256679223578, 3.14970844448057,
3.3626226637927, 5.33242229071662, 5.48988156249026)), row.names = c(NA,
-10L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud) 我有一个包含 21 列的 data.frame,每三列代表一个特定的时间点。我想计算这些一式三份中每一个的平均值。
geneName t11 t12 t13 t21 t22 t23 t31 t32 t33 t41 t42 t43 t51 t52 t53 t61 t62 t63
gene1 gene1 3296 5133 3466 2166 1759 2099 1916 1379 1570 2533 1794 1016 800 79 648 99 60 152
gene2 gene2 4210 5505 4173 2736 2748 3052 2409 1944 2237 1158 3475 1488 4023 102 940 265 365 124
...
Run Code Online (Sandbox Code Playgroud)
t1在上面的例子中,我想计算三个、t2、t3等的平均值。
如何将数据框中的列内的数字四舍五入到小数点后两位?
df 的名称是tax_data,我想要舍入的列称为rate_percent
我尝试使用:
format(round(rate_percent ,2), nsmall =2) but this didn't work.
Run Code Online (Sandbox Code Playgroud)
有没有人有什么建议?
我有 df
df = data.frame(
group = c(rep("A", 3), rep("B", 3)),
vt = c("SO:0001574", "SO:0001619", "SO:0001619", "SO:0001619", "SO:0001619", "SO:0001821")
)
Run Code Online (Sandbox Code Playgroud)
和两个向量:
tier_1 = c("SO:0001574", "SO:0001575")
tier_2 = c("SO:0001821", "SO:0001822")
Run Code Online (Sandbox Code Playgroud)
我想产生一个输出:
group vt ct
1 A SO:0001574 tier_1
2 A SO:0001619 tier_1
3 A SO:0001619 tier_1
4 B SO:0001619 tier_2
5 B SO:0001619 tier_2
6 B SO:0001821 tier_2
Run Code Online (Sandbox Code Playgroud)
即我想生成第三列 ct,它根据 tier_1 或 tier_2 中 vt 列的存在进行填充,以便给定组中的所有行都填充该层类型。
我试过了:
df %>%
dplyr::group_by(group) %>%
dplyr::mutate(tier = dplyr::case_when(
vt %in% tier_1 ~ "tier_1",
vt %in% …Run Code Online (Sandbox Code Playgroud) 我正在寻找整数数据框的值,即以.00
Price
100.00
100.46
101.00
101.67
Run Code Online (Sandbox Code Playgroud)
生成的数据框将是:
Price
100.00
101.00
Run Code Online (Sandbox Code Playgroud) 这种类型的循环如何工作以及为什么要打印x=1;相反x=3?
#include <stdio.h>
#include <stdlib.h>
int main() {
char x = 2;
for (; x++;);
printf("x=%d", x);
}
Run Code Online (Sandbox Code Playgroud)