我有一堆列,我想获取某些列具有相同值的数据子集:
<xe:namePicker id="namePicker1" for="inputText1">
<xe:this.dataProvider>
<xe:dominoNABNamePicker addressBookSel="all" nameList="people"></xe:dominoNABNamePicker>
</xe:this.dataProvider>
<xe:this.dojoAttributes>
<xp:dojoAttribute name="maxRowCount" value="10000">
</xp:dojoAttribute>
</xe:this.dojoAttributes>
</xe:namePicker>
所以我需要根据Col0和Col1来选择。所以它会通过并选择Col0和Col1匹配的所有内容。
所以我们有一个看起来像这样的结果:
Col0 Col1 Col2
A beer 5
A beer 439
A wine 123
A wine 1293
B beer 493
B beer 91
B wine 944
然后我想根据其他数据列将结果处理成其他内容。因此,如果它在一个具有该值的不同表中创建一个新行,那么让我们说检查Col2的总和是否为素数。如果不是,请找到最接近的素数,然后添加一个最接近素数的新行。
答案 0 :(得分:0)
加载一些库和您的数据df
library(data.table)
library(tidyverse)
df <- fread("Col0\tCol1\tCol2
A\tbeer\t5
A\tbeer\t439
A\twine\t123
A\twine\t1293
B\tbeer\t493
B\tbeer\t91
B\twine\t944",header=T,sep="\t") %>%
as.data.frame()
我使用tidyverse
来达到您想要的输出
df1 <- df %>%
group_by(Col0,Col1) %>%
nest(Col2) %>%
rowwise() %>%
mutate(data = map(data,~paste0("[", Col0, ", ", Col1, ", ", .x, "]"))) %>%
ungroup() %>%
unnest(data) %>%
group_by(Col0,Col1) %>%
summarise(data = paste0(data, collapse=", "))
<强>输出强>
Col0 Col1 data
1 A beer [A, beer, 5], [A, beer, 439]
2 A wine [A, wine, 123], [A, wine, 1293]
3 B beer [B, beer, 493], [B, beer, 91]
4 B wine [B, wine, 944]
如果您只想保存 所需的输出
mylist <- df1$data