问题:我想从具有条件的组发生后退填充值.我试图在所需的输出中生成列C.
如果A <= 35,则将C设置为B并向后填充1,如果A> 35,则停止填充.
我正在尝试使用dplyr完成此任务.
建立在类似于我之前的问题的基础上:按组的出现向后填充值
输入:
DAT_in = data.frame(ID=c(1,1,1,1,
2,2,2,
3,3,3,
4,4,4,4,4),
time=c(1,2,3,4,
1,2,3,
1,2,3,
1,2,3,4,5),
A=c(100,35,25,0,
100,75,55,
100,28,25,
100,30,45,25,0),
B=c(0,0,0,1,
0,0,0,
0,0,1,
0,0,0,0,1))
Run Code Online (Sandbox Code Playgroud)
期望的输出(C):
DAT_out = data.frame(ID=c(1,1,1,1,
2,2,2,
3,3,3,
4,4,4,4,4),
time=c(1,2,3,4,
1,2,3,
1,2,3,
1,2,3,4,5),
A=c(100,35,25,0,
100,75,55,
100,28,25,
100,30,45,25,0),
B=c(0,0,0,1,
0,0,0,
0,0,1,
0,0,0,0,1),
C=c(0,1,1,1,
0,0,0,
0,1,1,
0,0,0,1,1))
Run Code Online (Sandbox Code Playgroud) 问题:
我试图在 Power BI 中使用 R 创建数据框时保留所有记录。
如果我将数据输入 R 脚本视觉对象,它会自动应用 unique() 删除重复记录。我正在处理长格式的数据,所以我不希望发生这种情况。
问题: 在 R 脚本视觉对象中生成数据帧时,如何阻止 Power BI 应用 unique()?
Power BI 生成的代码示例
#Create dataframe
#dataset <- data.frame(date_key)
#Remove duplicated rows
#dataset <- unique(dataset)
Run Code Online (Sandbox Code Playgroud) 问题:如何在发生某个值之前向后填充组中的所有行.我不是试图填写NA或缺少使用值zoo na.locf.在下面我想在每个ID组发生1.00之前填充A中的所有先前行和1.00,理想情况下使用dplyr.
输入:
data<- data.frame(ID=c(1,1,1,1,2,2,2,3,3,3,4,4,4,4,4),
time=c(1,2,3,4,1,2,3,1,2,3,1,2,3,4,5),
A=c(0.10,0.25,1,0,0.25,1,0.25,0,1,0.10,1,0.10,0.10,0.10,0.05))
ID time A
1 1 0.10
1 2 0.25
1 3 1.00
1 4 0.00
2 1 0.25
2 2 1.00
2 3 0.25
3 1 0.00
3 2 1.00
3 3 0.10
4 1 1.00
4 2 0.10
4 3 0.10
4 4 0.10
4 5 0.05
Run Code Online (Sandbox Code Playgroud)
期望的输出:
ID time A
1 1 1.00
1 2 1.00
1 3 1.00
1 4 0.00
2 1 1.00
2 …Run Code Online (Sandbox Code Playgroud)