※ 引述《clansoda (小笨)》之铭言:
: 各位好,我这次碰到的问题是假设我有以下一个dataframe
: 长毛象 山地 10
: 狐狸 山地 50
: 老虎 山地 60
: 猴子 山地 30
: 长毛象 雪地 25
: 狐狸 雪地 15
: 老虎 雪地 8
: 猴子 雪地 33
: 第一跟第二个column都是factor vector,第三个vector是numeric的格式
: 假设我想要做动物跟栖息地是否相关,我想弄成row是以动物作为分隔
: 而column是以栖息地作为分隔
: 做完应该会像是
: 雪地 山地
: 长毛象
: 狐狸
: 老虎
: 猴子
: 然后将值填入里面,我用table function可是里面没有可以填入值的arugment
: 我之前看过reshape的melt function,试了很久也没成功,不知道有没有其他方法呢?
library(data.table)
library(magrittr)
library(dplyr)
library(tidyr)
dat <- fread('
长毛象 山地 10
狐狸 山地 50
老虎 山地 60
猴子 山地 30
长毛象 雪地 25
狐狸 雪地 15
老虎 雪地 8
猴子 雪地 33')
dat %>% spread(V2, V3)
# V1 山地 雪地
# 1: 老虎 60 8
# 2: 狐狸 50 15
# 3: 长毛象 10 25
# 4: 猴子 30 33
会有警告:id() is deprecated为正常,等待tidyr作者改版 (dplyr::id要被弃用了)
(tidyr跟dplyr都是Hadley跟Rstudio的作品)