Hug*_*ugo 5 variables r reshape
说我有一个数据框:
data <- data.frame(id=c(1,2,2,2),
code=c("A","B","A","B"),
area=c(23.1,56.0,45.8,78.5))
Run Code Online (Sandbox Code Playgroud)
这行代码行之有效:
df<-cast(data,id~code,fun.aggregate=sum)
Run Code Online (Sandbox Code Playgroud)
然后创建以下变量:
ID <- "id"
CODE <- "code"
Run Code Online (Sandbox Code Playgroud)
并将变量用作强制转换函数中的参数:
df <- cast(data, ID~CODE, fun.aggregate=sum)
Run Code Online (Sandbox Code Playgroud)
然后我得到以下错误:
Error: Casting formula contains variables not found in molten data: ID, CODE
Run Code Online (Sandbox Code Playgroud)
如何在强制转换功能中使用变量而不是列名?
您需要构造一个公式:
cast(data, as.formula(paste(ID, CODE, sep="~")), fun.aggregate=sum)
Run Code Online (Sandbox Code Playgroud)
然而,包 reshape 已被包 reshape2 取代(看看它的功能dcast并参见 @Ananda Mahto 的评论)。您可能也对基本 R 中的函数reshape感兴趣。