我有一个数据框列表,我希望为列表中的每个数据框分配一个变量列,它是给定数据帧名称的简单字符向量。
data <- list(
d1 = data.frame(animal = sample(c("cat","dog","bird"), 5, replace = T)),
d2 = data.frame(animal = sample(c("cat","dog","bird"), 5, replace = T)),
d3 = data.frame(animal = sample(c("cat","dog","bird"), 5, replace = T))
)
这会产生:
> data
$d1
animal
1 cat
2 bird
3 cat
4 cat
5 cat
$d2
animal
1 dog
2 cat
3 cat
4 cat
5 bird
$d3
animal
1 cat
2 dog
3 cat
4 cat
5 cat
我想要做的是创建如下内容:
> newdata
$d1
animal newvar
1 cat d1
2 cat d1
3 cat d1
4 dog d1
5 cat d1
$d2
animal newvar
1 bird d2
2 cat d2
3 bird d2
4 cat d2
5 cat d2
$d3
animal newvar
1 bird d3
2 bird d3
3 cat d3
4 cat d3
5 bird d3
但我无法弄清楚如何实际引用数据框名称 - 在数据框列表中 - 并将其适当地转换为字符向量。
以下内容不起作用:
namefunc <- function(x) {
x <- x %>% transform(newvar = as.character(x))
}
newdata <- namefunc(data)
答案 0 :(得分:4)
我们可以使用Map
来cbind
list
'数据'的names
元素与{数据'Map(cbind, data, newvar= names(data))
$("#mySelectId").on("change",function(){
relValue =$("#mySelectId option:selected").attr("rel");
console.log("You rel value is "+relValue);
});
答案 1 :(得分:1)
%%
("Project"|"project") return 'PROJECTCOMMAND';
"-au" return 'ADDUSER';
"-n" return 'NAMEOPTION';
"-k" return 'KEYOPTION';
"-desc" return 'DESCRIPTION';
("--add"|"-a") return 'ADDOPTION';
<TEXT>[-a-zA-Z0-9@\.]+ {this.popState(); return 'TEXT';}
<INITIAL,TEXT>\s+
<<EOF>> return 'EOF';
/lex
%start line
%%
line
: PROJECTCOMMAND options EOF
{
//enter code here
}
| PROJECTCOMMAND options TEXT EOF
{
//enter code here
}
;
options
: option
{
//enter code here
}
| options option
{
//enter code here
}
;
option
: ADDUSER
{
//enter code here
}
| NAMEOPTION
{
//enter code here
}
| KEYOPTION
{
//enter code here
}
| DESCRIPTION
{
//enter code here
}
| ADDOPTION
{
//enter code here
}
;
或最终:
lapply(names(data), function(d) transform(data[[d]], newvar=d))