小编Tom*_*Tom的帖子

在dplyr链中创建指标变量列

更新:对于那些回复的人道歉,在我最初的例子中,我忽略了作为一个因素data.frame()创建的事实,var而不是像我想象的那样作为一个角色向量.我已经纠正了这个例子,这将至少打破其中一个答案.

- 原版的 -

我有一个数据框,我正在执行一系列dplyrtidyr操作,我想为指标变量添加列,编码为0或1,并在dplyr链中执行此操作.因子的每个级别(当前存储为字符向量)应该在单独的列中编码,并且列名称是固定前缀与变量级别的串联,例如var具有级别a,新列var_a将是1,以及所有其他级别行将为var_a0.

下面使用基数R的最小例子产生了我想要的结果(感谢这篇博文),但我想将它全部卷入dplyr链,并且无法弄清楚如何做到这一点.

library(dplyr)
df <- data.frame(var = sample(x = letters[1:4], size = 10, replace = TRUE), stringsAsFactors = FALSE)
for(level in unique(df$var)){
  df[paste("var", level, sep = "_")] <- ifelse(df$var == level, 1, 0)
}
Run Code Online (Sandbox Code Playgroud)

请注意,实际数据集包含多个列,创建指示符变量时不应更改或删除任何列,但列var可以转换为类型因子.

r dplyr tidyr

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

从 R 中的 HTML 页面中提取数据:特定选择元素中的选项值

我刚刚开始用 R 从网站中提取数据。EIA 有一个网页可以提供对其数据的交互式访问,我想提取数据可用的年份范围。

我想提取选项的值,但仅适用于网页上的特定选择元素(名为“year1”)。我怎样才能做到这一点?

<span id="sub3">
  <label for="year">Start Year:</label>
  <select name="year1" id="year" style="font-size:12px;padding:4px 2px;border:solid 1px #aacfe4;" onchange="activeB()">
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    <option value="2009">2009</option>
    <option value="2008" selected="selected">2008</option>
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2005">2005</option>
    <option value="2004">2004</option>
    <option value="2003">2003</option>
    <option value="2002">2002</option>
    <option value="2001">2001</option>
    <option value="2000">2000</option>
    <option value="1999">1999</option>
    <option value="1998">1998</option>
    <option value="1997">1997</option>
    <option value="1996">1996</option>
    <option value="1995">1995</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    <option value="1990">1990</option>
    <option value="1989">1989</option>
    <option value="1988">1988</option>
    <option value="1987">1987</option>
    <option value="1986">1986</option>
    <option value="1985">1985</option>
    <option value="1984">1984</option>
    <option value="1983">1983</option>
    <option …
Run Code Online (Sandbox Code Playgroud)

html xml r

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

标签 统计

r ×2

dplyr ×1

html ×1

tidyr ×1

xml ×1