我想创建一个函数(CleanEnvir),它基本上调用remove/rm并从中删除某些对象.GlobalEnv.
CleanEnvir <- function(pattern = "tmp"){
rm(list = ls()[grep("tmp", ls())], envir = globalenv())
}
keep <- 1
tmp.to.be.removed <- 0
ls()
## does not work
CleanEnvir()
ls()
## does work
rm(list = ls()[grep("tmp", ls())], envir = globalenv())
ls()
Run Code Online (Sandbox Code Playgroud) 我使用的是Python 3.3.我很好奇如何从列表中创建字典:
让我说我的列表包含字符串
list = ['a;alex', 'a;allison', 'b;beta', 'b;barney', 'd;doda', 'd;dolly']
Run Code Online (Sandbox Code Playgroud)
我想把它变成这样的字典:
new_dict = { {'a': {'alex','allison'}}
{'b': {'beta','barney'}}
{'d': {'doda', 'dolly'}} }
Run Code Online (Sandbox Code Playgroud)
所以后来我可以这样打印出来:
Names to be organized and printed:
a -> {'alex', 'allison'}
b -> {'beta', 'barney'}
d -> {'doda', 'dolly'}
Run Code Online (Sandbox Code Playgroud)
我该如何处理?提前谢谢了!
-UPDATE-
到目前为止我有这个:
reached_nodes = {}
for i in list:
index = list.index(i)
reached_nodes.update({list[index][0]: list[index]})
Run Code Online (Sandbox Code Playgroud)
但它输出到控制台:
{'a': 'a;allison', 'b': 'b;barney', 'd': 'd;dolly'}
Run Code Online (Sandbox Code Playgroud) 我很确定我的事情变得复杂了.我有一个带p变量的数据框(这里v1是v3:)和两个因子变量(这里:sex和unemp):
> head(df)
sex unemp v1 v2 v3
1 0 0 2 4 4
2 0 0 2 1 1
3 1 0 3 3 5
4 1 1 2 3 5
5 0 0 1 2 5
6 1 0 3 5 4
Run Code Online (Sandbox Code Playgroud)
我现在想修改(即计算中位数和平均值,然后重新排列汇总表)我的数据,使得结果数据框看起来像这样(对于男性或女性):
> df.res.men
median.unemp.1 median.unemp.0 mean.unemp.1 mean.unemp.0
v1 2.0 2.0 2.666667 2.391304
v2 2.0 3.5 2.500000 3.369565
v3 4.5 3.0 4.166667 2.956522
Run Code Online (Sandbox Code Playgroud)
这是完整的代码:
library(plyr)
## generate data
set.seed(1) …Run Code Online (Sandbox Code Playgroud) 我有以下变量名称向量:
vn <- c("id", "pid", "wave", "psex", "pdobd", "pdobm", "pdoby", "psat3",
"ppa21i1", "psd23i19")
Run Code Online (Sandbox Code Playgroud)
我很难找到一个正确的正则表达式来删除所有第一个p而不是"pid".
sub(???, "", vn) ## I tried "^p[^id]?" but to no avail...
Run Code Online (Sandbox Code Playgroud)
所以,结果看起来像:
c("id", "pid", "wave", "sex", "dobd", "dobm", "doby", "sat3",
"pa21i1", "sd23i19")
Run Code Online (Sandbox Code Playgroud)