R语言——swirl函数 tidyr包学习

QUESTION 1

The first problem is
when you have column headers that are values, not variable names.

(值作为了标题名)
例如:

> grade male female
1      A   5   3
2      B   4   1
3      C   8   6
4      D   4   5
5      E   5   5
##变量中的female和male就是上面所说的变量名中含有了变量,female和male应该是“性别”这个变量的的变量值

gather函数

> gather(students,sex,count,-grade)
> #第一个参数,为要操作的变量名,第二个参数为Key,即旧变量名生成的一个新变量的名称。第三个参数为原来的变量值生成新的一列的变量名,第四个负号表示不动grade一列(选取所有的其他列),也可以用:来正向选取连续几列
> #key, value	
> Names of new key(新的变量名称,变量值为原来的旧变量名) & value columns(变量值列的新变量名), as strings or symbols.
   grade    sex count
1      A   male     5
2      B   male     4
3      C   male     8
4      D   male     4
5      E   male     5
6      A female     3
7      B female     1
8      C female     6
9      D female     5
10     E female     5

作用:类似于Excel里的数据透视表,整理混乱的数据,新定义变量名字

QUESTION 2

The second messy data case
when multiple variables are stored in one column.

grade male_1 female_1 male_2 female_2
1     A      7        0      5        8
2     B      4        0      5        8
3     C      7        4      5        6
4     D      8        2      8        1
5     E      8        4      1        0
#与上一个问题类似,这个变量值也作为了变量名并且是交叉的两个。性别和级别()

解决办法分两步
第一,类似于上一种使用gather函数

> res<- gather(students2,sex_class,count,-grade)
> #第一个为输入的变量名,第二个为key——变量名生成一个新的变量,第三个变量为变量值,取变量值的变量名为count,最后负号表示不变动grade列
> > res
   grade sex_class count
1      A    male_1     7
2      B    male_1     4
3      C    male_1     7
4      D    male_1     8
5      E    male_1     8
6      A  female_1     0
7      B  female_1     0
8      C  female_1     4
9      D  f
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值