我想为不同的df-id应用一个函数,如果下一行不同于前一行,则返回1,否则返回0。
我完全不知道我该如何实现这一目标,无论如何都可以完成它吗?
数据结构如下:
df <- structure(list(
id = c(2,2,3,3,4,4,5,5),
job_position = c("Analyst", "Supervisor",
"HRBP", "HRBP", "Economist",
"Financial Planner", "Reporter",
"Reporter")),
class = "data.frame",
row.names = c(NA, -8L))
))
# id job_position
# 2 Analyst
# 2 Supervisor
# 3 HRBP
# 3 HRBP
# 4 Economist
# 4 Financial Planner
# 5 Reporter
# 5 Reporter
预期输出应如下所示:
# id job_position changing_job_position
# 2 Analyst 0
# 2 Supervisor 1
# 3 HRBP 0
# 3 HRBP 0
# 4 Economist 0
# 4 Financial Planner 1
# 5 Reporter 0
# 5 Reporter 0
对于每个id
,您可以检查当前值是否与前一个值不同。
library(dplyr)
df %>%
group_by(id) %>%
mutate(changing_job_position = +(job_position != lag(job_position,
default = first(job_position))))
# id job_position changing_job_position
# <dbl> <chr> <int>
#1 2 Analyst 0
#2 2 Supervisor 1
#3 3 HRBP 0
#4 3 HRBP 0
#5 4 Economist 0
#6 4 Financial Planner 1
#7 5 Reporter 0
#8 5 Reporter 0
使用<code>数据。table可以执行以下操作:
library(data.table)
setDT(df)[, changing_job_position := +(job_position != shift(job_position,
fill = first(job_position))), id]
我们可以按“id”分组,根据任何< code >重复或< code>n_distinct(job_position)创建“changing_job_position”
library(dplyr)
df %>%
group_by(id) %>%
mutate(changing_job_position = + (any(duplicated(job_position)) &
row_number() == 1)) %>%
ungroup %>%
mutate(changing_job_position = lead(changing_job_position, default = 0))
-输出
# A tibble: 8 x 3
# id job_position changing_job_position
# <dbl> <chr> <dbl>
#1 2 Analyst 0
#2 2 Supervisor 1
#3 3 HRBP 0
#4 3 HRBP 0
#5 4 Economist 0
#6 4 Financial Planner 1
#7 5 Reporter 0
#8 5 Reporter 0
我想继续将此函数应用于我的所有数据页,例如。df1,df2,df3...DF100。输出文件应保持相同的dataframe类型和名称。 lapply函数不起作用,因为它返回一个列表,而不是单独的数据帧。
我想在中的包中使用功能,它有一个需求,作为
所以我在用摩卡酵素Sinon测试React app。我试图用if语句测试一个函数,其中有一个对另一个函数的调用。我的目标是输入if语句,但是存根第二个函数调用。代码如下: 所以我想输入if语句,但不调用getUsers()函数。我该怎么做?我正在监视SearchChange(),如下所示: 期待听到,谢谢!
我试图用R来求一个数据帧中多个列(但不是全部)的总和。问题是我只想求大于该行值中值的值的总和,而忽略零。 下面是一个显示两行的示例,其中 20 列,其中 6 列(列 x1:x6)具有我想考虑的总和值: 忽略零,第一行的中位数是4,第二行是2.5。所以我想求和剩下的数字 有许多行数据。我已经将中值(我只是使用 excel 来获取此值)放在另一列中,我将称之为 ,因此可以使用它,而不必在 R 代码中计
我是熊猫数据框的新手,我想应用一个函数,在同一列中取几行。就像当你应用函数diff(),但我想计算文本之间的距离。所以我定义了一个测量距离的函数,我试图使用应用,但我不知道如何选择几行。下面我展示了一个我尝试过的例子和我所期望的: 但它不起作用。我想得到的是: 提前感谢您为我提供的任何帮助。
我是新来的Clojure和玩它的乐趣。 我正在阅读一个CSV文件,并希望对每一列应用一个不同的函数。什么是一个优雅的(既简洁又可读)方法来做到这一点?我探讨了两种方法: null 对于每一行... ...我想对每个元素应用一个不同的函数,得到这样的结果: 我要使用的函数是: null 使用此方法,我首先将每一行转换为一个映射: 编辑:并且我想获取此地图: 转换器也存储在映射中: 最后我会把数据放入