【发布时间】:2014-10-21 15:34:38
【问题描述】:
我不得不承认我完全被这个问题难住了,所以很抱歉没有明确的尝试,但希望我能清楚地问这个问题:
我有一个数据框列表。对于所有这些,有多个日期类型变量需要格式化为日期(例如,as.Date(data$var, format = "%m/%d/%y"))。
问题是日期变量在每个数据帧中的名称都不同。在下面的示例中,我们有“start_date”和“end_date”。
有没有办法编写一些对数据框中的变量名进行操作的函数,如果它找到包含“日期”的文本,是否会进行格式化操作?
数据框:
west <- data.frame(
spend = sample(50:100,50,replace=T),
trials = sample(100:200,50,replace=T),
start_date = sample(c("06/07/14","06/08/14","06/09/14"), 50, replace=T),
country = sample(c("usa","canada","uk"),50,replace = T)
)
east <- data.frame(
end_date = sample(c("06/07/14","06/08/14","06/09/14"), 50, replace=T),
spend = sample(50:100,50,replace=T),
trials = sample(100:200,50,replace=T),
country = sample(c("china","japan","skorea"),50,replace = T)
)
然后将它们变成一个列表(实际上,这是一个更大的列表):
combined <- c(west,east)
我如何从 grepl 语句中获取逻辑向量并告诉它对列表元素中逻辑向量为“TRUE”的变量进行操作?
grepl("date", names(combined))
[1] FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE
【问题讨论】:
-
您可以创建一个列表
list(west, east)并在该列表上应用grepl。 -
@akrun 确实,OP 可以创建一个列表(确实应该,而不是
c(west, east),它不是数据框列表),但应用 @该列表中的 987654327@ 不起作用。 -
是的。我建议将其发布为答案。
标签: r