小编jor*_*aga的帖子

创建一个新列,它是其他列的向量

我有一个包含两列(V1 和 V2)的数据框,我想创建另一列是向量 - 通过组合函数:c() - 将其他列作为参数。

我在所有任务中都使用 dplyr,所以我也想在这种情况下使用它。

我尝试使用 apply 函数创建新列,但它返回一个包含所有行(而不是按行)的向量,这让我感到惊讶,因为使用其他函数它可以按行工作。

我已经使用 rowwise 函数解决了它,但由于它通常效率不高,我想看看是否还有其他选择。

这是数据框的定义:

IDs <- structure(list(V1 = c("1", "1", "6"),
                      V2 = c("6", "8", "8")),
                 class = "data.frame",
                 row.names = c(NA, -3L)
                 )
Run Code Online (Sandbox Code Playgroud)

这是列的创建(一起是错误的结果,一起是好的结果):

IDs <-
  IDs %>% 
  mutate(together1 = list(mapply(function (x,y) c(x,y), V1, V2))
        ) %>%
  rowwise() %>% 
  mutate(together2 = list(mapply(function (x,y) c(x,y), V1, V2))
        ) %>% 
  ungroup()
Run Code Online (Sandbox Code Playgroud)

以下是打印结果:

print(as.data.frame(IDs))

V1 V2        together1 together2
1  1  6 1, 6, 1, 8, 6, 8      1, 6
2 …
Run Code Online (Sandbox Code Playgroud)

r apply lapply dplyr mutate

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

将函数应用于数据框的列(列是列表)

我有一个包含2列的数据框,第一列是ID号,第二列是数字列表.我已经定义了一个函数,它总结了列表并添加2.我想要做的是在不使用for循环的情况下对所有行进行计算.我试过使用申请,但我不能让它工作......

这是代码:

测试数据框:

d1 <- c(1,2,3,4,5)
d2 <- c(4,6,8)
d3 <- c(5,10)

df1 <- data.frame(cbind(1, I(list(d1))))
df2 <- data.frame(cbind(2, I(list(d2))))
df3 <- data.frame(cbind(3, I(list(d3))))
df <- rbind(df1, df2, df3)
Run Code Online (Sandbox Code Playgroud)

定义的函数sum2:

sum2 <- function(a)
{
  sum(unlist(a)) + 2
}
Run Code Online (Sandbox Code Playgroud)

如何使用apply并将第三列添加到包含计算值的df?

谢谢!

r list apply dataframe

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

Excel:Countif的Countif

我想知道是否有办法在单个公式中计算两个具有不同数据和标准的countif(不是逐行或使用数据透视表).让以下示例适用:

我有下表:每个项目(ID)的字段A,B和C. 表头在单元格T1中开始.

数据表

我想知道有多少项有2个或更多字段(A,B,C),数字大于5.

我将创建另一列X并逐行使用以下公式:(第2行的示例)

=COUNTIF(U2:W2;">5") 
Run Code Online (Sandbox Code Playgroud)

对于新的X列(包含所有COUNTIF公式),我会使用另一个COUNTIF

=COUNTIF(X:X;">1)
Run Code Online (Sandbox Code Playgroud)

有没有办法连接两者?(我想用数组公式)

提前致谢!

excel excel-formula countif array-formulas

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

标签 统计

apply ×2

r ×2

array-formulas ×1

countif ×1

dataframe ×1

dplyr ×1

excel ×1

excel-formula ×1

lapply ×1

list ×1

mutate ×1