小编sah*_*ahn的帖子

没有类型声明的linux内核代码不是注释,这是什么意思?

我正在阅读 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,如果我错了,请告诉我,我会在其他地方问这个问题。

c linux linux-kernel

2
推荐指数
1
解决办法
126
查看次数

将满足特定条件的所有行分组

我有以下数据框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() 函数,仅将与特定条件匹配的所有行分组为一组,并将所有其他行保留在仅包含它们的组中?

r dataframe

2
推荐指数
1
解决办法
725
查看次数

在 R 中使用变量标签重命名变量

我一直与 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)

r labelled

2
推荐指数
1
解决办法
2642
查看次数

获取R dplyr中每列中1的百分比

我有一个像这样的 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 中做到这一点?

r dplyr

2
推荐指数
1
解决办法
62
查看次数

如何有效计算一组范围之间的重叠次数?

假设我有一组按行的范围:

降低
-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)

r range overlap data.table

2
推荐指数
1
解决办法
136
查看次数

如何根据列名称中的模式计算 data.frame 中的平均值?

我有一个包含 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在上面的例子中,我想计算三个、t2t3等的平均值。

r mean dplyr

2
推荐指数
1
解决办法
64
查看次数

如何在 R 中对列中的数字进行舍入?

如何将数据框中的列内的数字四舍五入到小数点后两位?

df 的名称是tax_data,我想要舍入的列称为rate_percent

我尝试使用:

format(round(rate_percent ,2), nsmall =2) but this didn't work.
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?

r rounding dplyr tidyverse

1
推荐指数
1
解决办法
8427
查看次数

dplyr case_when 跨组

我有 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)

r dplyr

1
推荐指数
1
解决办法
144
查看次数

过滤数据以获取整数 (.00)

我正在寻找整数数据框的值,即以.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)

r

1
推荐指数
1
解决办法
667
查看次数

这种类型的循环如何工作:`for (; x++;);`

这种类型的循环如何工作以及为什么要打印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)

c

1
推荐指数
1
解决办法
125
查看次数

标签 统计

r ×8

dplyr ×4

c ×2

data.table ×1

dataframe ×1

labelled ×1

linux ×1

linux-kernel ×1

mean ×1

overlap ×1

range ×1

rounding ×1

tidyverse ×1