I am reading parameters from an Excel file but am having trouble using them
in tapply. Here is a mini-version of my problem.
------------------------------------------------------------------------------------------------------------------------------------------------
sorted <-
data.frame(c("Single","Single","Double","Double","Double",
"Triple"),
c(324.5, 435.3, 568.3, 345.4, 143.5, 563.5))
colnames(sorted) <- c("ITEM","PRICE")
attach(sorted)
sMean <- tapply(PRICE,ITEM,mean) # works but cannot use column names
directly
# since reading them from an Excel file
into
# a parameter file
Pname <- c("PRICE")
Iname <- c("ITEM")
parameter <- data.frame(Pname,Iname) # This mimics reading the specific
column names
# from Excel
# Now I want to indirectly reference the PRICE and ITEM columns but this
does
# not work as expected
sMean2 <- tapply(parameter$Pname, parameter$Iname, mean)
--
Any assistance would be greatly appreciated.
__________________________
*Barry E. King, Ph.D.*
Chief Modeler
Qualex Consulting Services, Inc.
Barry.King@qlx.com
O: (317)940-5464
M: (317)507-0661
__________________________
[[alternative HTML version deleted]]
Hello, Try instead sMean2 <- tapply(parameter[[Pname]], parameter[[Iname]], mean) Hope this helps, Rui Barradas Em 04-03-2014 17:01, Barry King escreveu:> I am reading parameters from an Excel file but am having trouble using them > in tapply. Here is a mini-version of my problem. > ------------------------------------------------------------------------------------------------------------------------------------------------ > sorted <- data.frame(c("Single","Single","Double","Double","Double", > "Triple"), > c(324.5, 435.3, 568.3, 345.4, 143.5, 563.5)) > colnames(sorted) <- c("ITEM","PRICE") > > attach(sorted) > sMean <- tapply(PRICE,ITEM,mean) # works but cannot use column names > directly > # since reading them from an Excel file > into > # a parameter file > > Pname <- c("PRICE") > Iname <- c("ITEM") > parameter <- data.frame(Pname,Iname) # This mimics reading the specific > column names > # from Excel > # Now I want to indirectly reference the PRICE and ITEM columns but this > does > # not work as expected > sMean2 <- tapply(parameter$Pname, parameter$Iname, mean) >
HI,
I would use ?with() instead of ?attach.
sMean <- with(sorted,tapply(PRICE,ITEM,mean))
sMean
#Double Single Triple
# 352.4 379.9 563.5
parameter <- data.frame(Pname,Iname,stringsAsFactors=FALSE)
with(sorted,tapply(get(parameter[["Pname"]]),get(parameter[["Iname"]]),mean))
#Double Single Triple
# 352.4 379.9 563.5
A.K.
--------------------------------------------
On Tue, 3/4/14, Barry King <barry.king at qlx.com> wrote:
Subject: [R] Using indirect arguments in tapply
To: "r-help at r-project.org" <r-help at r-project.org>
Date: Tuesday, March 4, 2014, 9:01 AM
I am reading parameters from an Excel
file but am having trouble using them
in tapply.? Here is a mini-version of my problem.
------------------------------------------------------------------------------------------------------------------------------------------------
sorted <-
data.frame(c("Single","Single","Double","Double","Double",
"Triple"),
? ? ? ? ? ? ? ?
? ???c(324.5, 435.3, 568.3, 345.4,
143.5, 563.5))
colnames(sorted) <- c("ITEM","PRICE")
attach(sorted)
sMean <- tapply(PRICE,ITEM,mean)? # works but cannot
use column names
directly
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? # since reading them from an Excel file
into
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? # a parameter file
Pname <- c("PRICE")
Iname <- c("ITEM")
parameter <- data.frame(Pname,Iname)? # This mimics
reading the specific
column names
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ? # from Excel
# Now I want to indirectly reference the PRICE and ITEM
columns but this
does
# not work as expected
sMean2 <- tapply(parameter$Pname, parameter$Iname, mean)
--
Any? assistance would be greatly appreciated.
__________________________
*Barry E. King, Ph.D.*
Chief Modeler
Qualex Consulting Services, Inc.
Barry.King at qlx.com
O: (317)940-5464
M: (317)507-0661
__________________________
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org
mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible
code.