小编use*_*087的帖子

R:添加两个具有相同尺寸的数据框

我有 df1:

Type     CA     AR     Total
alpha    2      3        5
beta     1      5        6
gamma    6      2        8
delta    8      1        9
Run Code Online (Sandbox Code Playgroud)

我有 df2:

Type     CA     AR     Total
alpha    3      4        7
beta     2      6        8
gamma    9      1        10
delta    4      1        5
Run Code Online (Sandbox Code Playgroud)

我想添加两个数据框中的值以获得 1 个数据框,结果如下:

    Type     CA     AR     Total
    alpha    5      7        12
    beta     3      11       14
    gamma    15     3        18
    delta    12     2        14
Run Code Online (Sandbox Code Playgroud)

示例 --> (alpha, CA) = 2(来自 df1)+ 3(来自 df2)= 5(结果 df)

有谁知道如何做到这一点?我认为这不完全是合并,因为合并将覆盖该值,而我想添加该值。

提前致谢!!

r

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

R:当并非所有列都是数字时的 colSums

我有以下数据框

Type   CA   AR
alpha   1   5  
beta    4   9 
gamma   3   8 
Run Code Online (Sandbox Code Playgroud)

我想获得列和行总和,使其看起来像这样:

    Type   CA   AR Total
    alpha   1   5    6
    beta    4   9    13
    gamma   3   8    11
    Total   8   22   30
Run Code Online (Sandbox Code Playgroud)

我可以做 rowSums(如上所示),我猜是因为它们都是数字。

colSums(df)
Run Code Online (Sandbox Code Playgroud)

但是,当我执行 colSums 时,我收到错误“x must be numeric”。我意识到这是因为“类型”列不是数字。

如果我执行以下代码,以便尝试将值打印到第 4 行(并且仅对第 2 到第 4 列求和)

df[,4] = colSums(df[c(2:4)]
Run Code Online (Sandbox Code Playgroud)

然后我收到一个错误,即替换与数据大小不同。

有谁知道如何解决这个问题?我想打印第 2-4 列的列总和,并将第 1 列总计留空还是允许我打印“总计”?

提前致谢!!

r

4
推荐指数
2
解决办法
3万
查看次数

R:For循环如果错误则跳过/tryCatch

我有一个 1000 行的数据框。我想要循环的代码非常简单 - 我只想将第 4 列中的所有值设为大写。我希望它能够在任何行中出现错误时跳过该行并继续执行其余行。

我写了这段代码:

for(i in 1:1000)
{
  tryCatch(toupper(Total_Data_2[i,4]), error = function(e) next)
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:Error in value[[3L]](cond) : no loop for break/next, jumping to top level

有人可以帮我弄这个吗?我可以做一个 tryCatch 或某种 if iserror 。

提前致谢!!

r

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

标签 统计

r ×3