小编sah*_*ahn的帖子

如果不重复,如何提取第二次出现的重复主题 ID 或第一次出现?

如果该行不重复,我希望提取第二次出现的主题 ID(他们的数据的整行) 第一次出现。

这些数据来自重复访问,我们只对最后非缺失数据中的受试者感兴趣,这意味着该受试者要么具有“筛选”信息而没有“注射”信息,要么两者都有。这就是我们定义“基线”的方式。如果受兼备,我们希望保留数据的行与注射(最后一个数据处理前),如果只筛选,然后筛选(这是再处理最后的数据前,将等于基准)。

这是一些数据

df1 <- data.frame(ID = c(1, 2, 2, 3, 3, 4),
                  visit = c('screening', 'screening', 'injection', 'screening', 
'injection', 'screening'),
                  var2 = c(1, 6, 3, 12, 0, 2))
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 分离并重新合并包含这些主题的两个限定符的数据帧。但是当我这样做时,这些列就会被复制,产生一个宽而不是长的数据集(当它们显然匹配完全相同的 ID 时)。
  • 在具有多个条件的 dplyr 中使用过滤器,但它只捕获那些具有筛选的过滤器,因为对于重复的主题,这总是首先出现的。

建议?

r

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

为什么重载operator&lt;()不能实现比较功能?

我正在看这个。作者首先operator<()在my_data中定义并表示“一切正常”。添加成员变量后,他说“operator<()并没有真正实现比较操作”。我想知道两者有什么区别,为什么前者是错误的?


struct my_data
{
    std::string key;
    std::string value;
    //first
    bool operator<(const my_data data)const {           
        return key < data.key;
    }
};
//second
struct Compare
{
    bool operator()(const my_data& l, const my_data& r)
        const {
        return l.key < r.key;
    }
};
Run Code Online (Sandbox Code Playgroud)

那里

c++

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

数学运算未返回预期结果

我正在使用一个函数,但代码不起作用。我将函数分解为几个部分,并尝试自己了解发生了什么。我懂了:

int res;
res = (1 / 2) * 2 + 2;
printf("%d", res);
Run Code Online (Sandbox Code Playgroud)

自己算算:

(1 /2) = 0.5

0.5 * 2 = 1

1 + 2 = 3

(1 / 2) * 2 + 2 = 3,对吧?

但是,当我运行代码时,它给出的输出为“2”,而不是“3”。

当我尝试这个时:(将 '(1 / 2)' 变为 '0.5')

int res;
res = 0.5 * 2 + 2;
printf("%d", res);
Run Code Online (Sandbox Code Playgroud)

我得到的预期输出为“3”,这很奇怪,因为上面的示例理论上与下面的示例相同。这是否与我的编译器不知道简单的数学优先规则有关?

c math integer-division

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

为什么 mtcars[, -c("mpg"), drop = F] 不起作用?

这有效:

mtcars[, c("mpg"), drop = F]

                     mpg
Mazda RX4           21.0
Mazda RX4 Wag       21.0
Datsun 710          22.8
Hornet 4 Drive      21.4
Hornet Sportabout   18.7
Valiant             18.1
Duster 360          14.3
Merc 240D           24.4
Merc 230            22.8
Merc 280            19.2
Merc 280C           17.8
Merc 450SE          16.4
Merc 450SL          17.3
Merc 450SLC         15.2
Cadillac Fleetwood  10.4
Lincoln Continental 10.4
Chrysler Imperial   14.7
Fiat 128            32.4
Honda Civic         30.4
Toyota Corolla      33.9
Toyota Corona       21.5
Dodge Challenger    15.5
AMC Javelin         15.2
Camaro Z28          13.3 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

为什么数组元素值不变?

int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

for (int i = 0; i <= 9; i++) {
    int tmp = a[i];
    a[i] = a[9 - i];
    a[9 - i] = tmp;
}

for (int i = 0; i <= 9; i++) {
    printf("%d", a[i]);
}
Run Code Online (Sandbox Code Playgroud)

它的结果是:1234567890,但为什么不是10987654321,因为它在第一个for循环中切换值,但为什么在下一个for循环运行时不能更改它

我尝试将“int tmp”移到循环之外,但根本没有用。

c arrays

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

如何为数据帧的特定列创建一行 SD 值?

我有一个 160 x 250,000 的数据框。我想在 R 中找到除第一列(249,999 列)之外的所有列的 SD。是否可以执行此操作并添加一行 SD 值?这些是 DNA 甲基化的探针 β 值。

r standard-deviation

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

使用 apply 函数来运行带有返回单个值的向量的函数

在获取向量并返回单个值时,有没有办法使用 apply 函数?例如,我有一个向量,我想返回该向量的平均值。我不想使用 Mean() 的唯一原因是因为我希望能够选择不同的函数来应用于向量。

\n

例如

\n
vec <- c(1,2,3,4,5) \nfun <- function(vec, function){\n\napply(vec , function)\n\n}\n\nfun(vec, mean)\n
Run Code Online (Sandbox Code Playgroud)\n

当使用 lapply 或 sapply 之类的东西时,它将函数应用于向量中的每个单独条目,而不是为整个向量运行该函数。我想我\xe2\x80\x99m要么寻找一种使用lap ply或sapply并将函数应用于行而不是列的方法,要么寻找一个可以做到这一点的新函数。

\n

r

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

在集合中使用结构体

我正在尝试制作一组​​集合,在 C++ 中执行此操作的正确方法是什么?我想要实现的是这样的

One = { {"DDD", "Numbers", 0xf, 0xf, 0xf, 0x0,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 64},{"JJ", "Numbers", 0xf, 0xf, 0xf, 0x0,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 64},
{"kk", "Numbers", 0xf, 0xf, 0xf, 0x0,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 64}, {"LL", "Numbers", 0xf, 0xf, 0xf, 0x0,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 64} };
Run Code Online (Sandbox Code Playgroud)

我试过这样

#include <set>
#include <iostream>
#include <algorithm>
#include <cstring>

struct Config
{
    const char* lbl;
    const char* desc;
    std::uint8_t se_2A;
    std::uint8_t se_2B;
    std::uint8_t se_2C;
    std::uint8_t se_2D; …
Run Code Online (Sandbox Code Playgroud)

c++ std

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

将字符串中的双引号转换为单引号?

在 R 中,如果有以下字符串,它是一个向量,并且每个元素都用双引号引起来:

values <- c("hello","mr") 
Run Code Online (Sandbox Code Playgroud)

如何才能创建以下字符串呢?

"'hello','mr'"
Run Code Online (Sandbox Code Playgroud)

就像我如何添加这些单引号,但确保整个字符串是一个用双引号括起来的句子?

我可以对此进行硬编码,paste0但这不是同一件事。

string r dplyr

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

-1 的 AND 运算

在代码中实现逻辑运算时,发现一个现象,不应该在if语句中输入。原来这是AND (&&)-1和自然数的运算。

我不知道为什么在下面的相同代码中打印值 1。我直接运行1的补码和2的补码等计算,但没有得出1。

#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    int b = -1;
    
    int c = a && b;
    
    printf("test = %d",c);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ boolean implicit-conversion type-promotion logical-and

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