Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R dplyr向列添加越来越多的数字_R_Dplyr - Fatal编程技术网

R dplyr向列添加越来越多的数字

R dplyr向列添加越来越多的数字,r,dplyr,R,Dplyr,我有一个时间序列数据,我想在左边增加一个数字。 例如,在V1处我想添加1,在V2处我想添加2,因此在VN处,列将接收+N的加法 由于我的心智模型专注于类似dplyr的语法,我真的希望尽可能避免循环操作 我的想法是,我希望确保在订购/排列这些时间序列数据时,最后一列将具有最高的重要性。这可以通过稍后获取逐行求和来完成 set.seed(1990) ID <- rep(c('A','B','C'),each = 1) n <- sample(c(0,1), replace=TRUE, s

我有一个时间序列数据,我想在左边增加一个数字。 例如,在V1处我想添加1,在V2处我想添加2,因此在VN处,列将接收+N的加法

由于我的心智模型专注于类似dplyr的语法,我真的希望尽可能避免循环操作

我的想法是,我希望确保在订购/排列这些时间序列数据时,最后一列将具有最高的重要性。这可以通过稍后获取逐行求和来完成

set.seed(1990)
ID <- rep(c('A','B','C'),each = 1)
n <- sample(c(0,1), replace=TRUE, size=45)
df <- tibble(ID)
df <- cbind(df, as.data.frame(matrix(n, nrow = 3)))

到目前为止,我的表格没有正确排序,因为时间序列在这里和那里有很多间隙

谢谢!

以下是使用1个贴图和2个扫描的两个基本R选项

或者使用类似于base R方法的purrr map2:

df[-1] <- purrr::map2(df[-1], seq_along(df[-1]), `+`)

下面是使用1个贴图和2个扫描的两个基本R选项

或者使用类似于base R方法的purrr map2:

df[-1] <- purrr::map2(df[-1], seq_along(df[-1]), `+`)

您可以从tidyr包(属于tidyverse)中使用pivot_使df变长,添加一个包含要添加的数字的虚拟行,执行加法,删除虚拟行并将其恢复为更宽的形式

图书馆管理员 设定于1990年 ID% 选择rn%>% 支点更宽 >一个tibble:3x16 >ID V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 > >1 A 1 3 4 6 8 9 11 12 >2 B 1 3 4 5 6 8 9 10 11 12 >3 C 2 3 3 5 6 7 8 9 10 12 >…还有3个变量:V13、V14、V15
您可以从tidyr包(属于tidyverse)中使用pivot_使df变长,添加一个包含要添加的数字的虚拟行,执行加法,删除虚拟行并将其恢复为更宽的形式

图书馆管理员 设定于1990年 ID% 选择rn%>% 支点更宽 >一个tibble:3x16 >ID V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 > >1 A 1 3 4 6 8 9 11 12 >2 B 1 3 4 5 6 8 9 10 11 12 >3 C 2 3 3 5 6 7 8 9 10 12 >…还有3个变量:V13、V14、V15
我喜欢扫描选项。如果只是在df中添加一个矩阵呢?你是说重复使用相同长度的值来生成df和要添加的值,以便我们可以直接添加它们吗?毫无疑问,是这样的一些变化。感谢@RonakShah,我选择这个答案是因为它捕获了dplyr语法,我还了解了Cross等新功能。然而,我正在将我的R visual推广到Power BI,不幸的是,Power BI服务仍然不是最新的,这意味着不支持Cross。当然支持您提供的其他变体。我喜欢扫描选项。如果只是在df中添加一个矩阵呢?你是说重复使用相同长度的值来生成df和要添加的值,以便我们可以直接添加它们吗?毫无疑问,是这样的一些变化。感谢@RonakShah,我选择这个答案是因为它捕获了dplyr语法,我还了解了Cross等新功能。然而,我正在将我的R visual推广到Power BI,不幸的是,Power BI服务仍然不是最新的,这意味着不支持Cross。当然支持您提供的其他变体。感谢@MarBlo,我最终使用了此变体,因为Power BI服务dplyr版本仍然不是最新版本,这意味着dplyr的一些后续功能(如Cross)无法使用。另外,您的回答让我可以更灵活地在mutate语句中添加条件。谢谢@MarBlo,我最终使用了这种变体,因为Power BI服务dplyr版本仍然不是最新的,这意味着dplyr的一些后续功能(如Cross)无法使用。另外,您的回答使我能够更灵活地在mutate语句中添加条件。
df[-1] <- purrr::map2(df[-1], seq_along(df[-1]), `+`)
df
#  ID V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
#1  A  1  3  3  4  6  6  8  8  9  11  12  12  13  15  16
#2  B  1  3  4  5  5  6  8  8  9  10  11  12  14  14  15
#3  C  2  3  3  5  6  7  8  8  9  10  12  12  14  15  16