【发布时间】:2014-02-24 22:02:56
【问题描述】:
在 R 中,要将某些函数应用于列,您可以:
df$col <- someFunction(df$col)
现在我的问题是,当您在嵌套列表中有数据框时,您如何执行类似的任务? 假设我有一个像这样的以下列表,其中我在根目录的第二级中有数据框。
+------+------+
type1 | id | name |
+----------->|------|------|
| | | |
| | | |
year1 | +------+------+
+------------------+
| |
| | +------+------+-----+
| | type2 | meta1|meta2 | name|
| +----------> |------|------|-----|
| | | | |
+ +------+------+-----+
| type1 +------+------+
| +---------> | id |name |
| | |------|------|
| year2 | | | |
list +----------------->+ | | |
+ | +------+------+
| | type2 +------+------+-----+
| +---------> | meta1|meta2 |name |
| |------|------|-----|
| | | | |
| type1 +------+------+-----+
| +----------> +------+------+
| | | id |name |
| year3 | |------|------|
+-----------------+ | | |
| | | |
| type2 +------+------+
+----------> +------+------+-----+
|meta1 | meta2|name |
|------|------|-----|
| | | |
+------+------+-----+
我想用一些函数修改叶子中每个数据框中的“名称”列并将结果存储在那里。你是怎么做到的?
这是示例数据:
data<-list()
data$yr2001$type1 <- df_2001_1 <- data.frame(index=1:3,name=c("jack","king","larry"))
data$yr2001$type2 <- df_2001_2 <- data.frame(index=1:5,name=c("man","women","oliver","jack","jill"))
data$yr2002$type1 <- df_2002_1 <- data.frame(index=1:3,name=c("janet","king","larry"))
data$yr2002$type2 <- df_2002_2 <- data.frame(index=1:5,name=c("alboyr","king","larry","rachel","sam"))
data$yr2003$type1 <- df_2003_1 <- data.frame(index=1:3,name=c("dan","jay","zang"))
data$yr2003$type2 <- df_2003_2 <- data.frame(index=1:5,name=c("zang","king","larry","kim","fran"))
假设我想将列表中存储的每个数据框的名称列中的所有名称都大写
【问题讨论】:
-
请发布您的数据的代表性样本。
-
我的一般建议是不要以这种方式组织您的数据。在我看来,您在这里拥有的是两个(或可能只有一个)未融合的数据框。