【发布时间】:2021-01-24 19:13:06
【问题描述】:
原始示例代码:
v1 = c('Tom','Dick','Harry')
d1 <- data.frame(v1)
l1 <- c('20200101','20200202','20200303')
l2 <- c('20200101','20200202')
l3 <- c('20200101','20200202','20200303','20200404')
v2 = c(l1,l2,l3)
d1$v2 = v2
d2 <- d1
d2$len_v2 = c(3,2,4)
修正了解决 Q1 问题的示例代码。问题是我没有传入列表列表。
v2 = c(l1,l2,l3) 将列表列表展平并导致错误:
library(tidyverse)
v1 <- c('Tom','Dick','Harry')
d1 <- data.frame(v1)
l1 <- c('20200101','20200202','20200303')
l2 <- c('20200101','20200202')
l3 <- c('20200101','20200202','20200303','20200404')
v2 <- list(l1,l2,l3)
d1$v2 <- v2
d2 <- d1 %>% mutate(len_v2 = lengths(v2))
我通常使用 tidyverse。
Q1 >> 如何计算 'len_v2' 作为 D1 中的变量?是否有按行操作来执行此操作?
A1 >> 已解决。
Q2 >> 有没有办法对 v2 变量中的列表应用操作,例如过滤,或者产生一个新的列表变量,或者删除没有通过 v2 列表变量条件的行?
例如,如果我想返回其中包含 20200303 的所有行以获得仅包含第一行和第三行的结果 d3?
谢谢!
【问题讨论】:
标签: r vector tidyverse rowwise