小编Ber*_*iss的帖子

从函数中删除.GlobalEnv中的对象

我想创建一个函数(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)

environment r

13
推荐指数
2
解决办法
8665
查看次数

从字符串列表中创建字典(从列表元素创建键)

我使用的是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)

python dictionary list

4
推荐指数
1
解决办法
316
查看次数

简化创建汇总表的过程

我很确定我的事情变得复杂了.我有一个带p变量的数据框(这里v1v3:)和两个因子变量(这里:sexunemp):

> 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)

r

3
推荐指数
1
解决办法
611
查看次数

正则表达式和正确使用不

我有以下变量名称向量:

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)

regex r

1
推荐指数
1
解决办法
56
查看次数

标签 统计

r ×3

dictionary ×1

environment ×1

list ×1

python ×1

regex ×1