如何以不同的间隔从列表中提取值(由列表定义)

时间:2019-04-02 11:14:33

标签: r list dataframe vector extract

我想以可变间隔从数据框中的列中提取值。间隔存储在列表中。有没有办法提取这个?

该列如下所示:

6211
6111
711
414  
3211  
3311 
3411  
3511 
6211 
6111
...

和类似的列表:

"2"  "4"  "2"  "6"  "15" "2"  "9"...

现在,我想将列表应用于df列(该列表定义了所需值之间的步骤。结果应作为新变量存储在df中。由于缺少值,我们需要填写新值具有NA的列。这些应存储在列表中定义的时间间隔中。

所以结果应该像这样:


#    X       Y
1   6211    711
2   6111     NA
3    711     NA
4    414    3411
5   3211     NA
....

其中行之间的NA数再次由向量定义。 在最后一步中,我想将X和Y粘贴在一起以获得键变量。

谢谢!

1 个答案:

答案 0 :(得分:0)

我们可以在向量上使用<CarouselView ItemsSource="{Binding Banner}"> <CarouselView.ItemTemplate> <DataTemplate> <Image Source="{Binding ImageUrl}"/> </DataTemplate> </CarouselView.ItemTemplate> 并将该列作为子集

public ObservableCollection<ImageData> Banner ;
Banner = new ObservableCollection<ImageData>
            {
                new ImageData()
                {
                    ImageUrl = "b1.png",
                    ImageWidth = (int)App.UIWidth,
                    ImageHeight=(int)App.UIHeight
                },
                new ImageData()
                {
                    ImageUrl="b2.png",
                    ImageWidth=(int)App.UIWidth,
                    ImageHeight=(int)App.UIHeight

                }      
            };

或者如果您希望将其作为列

cumsum

或使用df$x[cumsum(c(1,vec))] #[1] 6211 711 3411 6211 中的df[cumsum(c(1,vec)), ,drop = FALSE]

slice

编辑

为了使更新的部分获得新的列dplyr,我们可以

library(dplyr)
df %>%  slice(cumsum(c(1, vec)))

#    x
#1 6211
#2  711
#3 3411
#4 6211

数据

Y