[R] create new matrix from user-defined function
arun
smartpink111 at yahoo.com
Sat Jul 13 04:43:17 CEST 2013
Hi,
One alternative would be to change colnames:
colnames(dat3)<-1:4
data.frame(MW_EEsDue_ERRORS=with(dat3,`1`[`4`!=rowSums(cbind(`2`,`3`))]))
#MW_EEsDue_ERRORS
#1 1882
#2 1884
#3 1885
Also, check these:
with(dat3,4)
#[1] 4
with(dat3,`4`)
#[1] 7 9 5 6 112
with(dat3,7)
#[1] 7
with(dat3,`7`)
#Error in eval(expr, envir, enclos) : object '7' not found
A.K.
----- Original Message -----
From: bcrombie <bcrombie at utk.edu>
To: r-help at r-project.org
Cc:
Sent: Friday, July 12, 2013 4:45 PM
Subject: Re: [R] create new matrix from user-defined function
AK, I decided to convert your “with” statement back to index-by-number, and I did look up the ?with help info, but I’m confused about my replacement code below. I got the wrong answer (R didn’t apply the function to my column 1 variable “A_CaseID”). What am I doing wrong? Do I need to change my function code re: index “4” (otherwise known as “D_MW_EEsDueTotal” --- my attempts at that have failed also)? thanks.
#this is your correct code
> data.frame(MW_EEsDue_ERRORS=with(dat3,A_CaseID[D_MW_EEsDueTotal!=rowSums(cbind(B_MW_EEsDue1,C_MW_EEsDue2))]))
# MW_EEsDue_ERRORS
#1 1882
#2 1884
#3 1885
#these are my incorrect scripts
> data.frame(MW_EEsDue_ERRORS=with(dat3,A_CaseID[4!=rowSums(cbind(2,3))]))
# MW_EEsDue_ERRORS
#1 1881
#2 1882
#3 1883
#4 1884
#5 1885
> data.frame(MW_EEsDue_ERRORS=with(dat3,dat3[[1]][4!=rowSums(cbind(2,3))]))
# MW_EEsDue_ERRORS
#1 1881
#2 1882
#3 1883
#4 1884
#5 1885
> data.frame(MW_EEsDue_ERRORS=with(dat3,1[4!=rowSums(cbind(2,3))]))
# MW_EEsDue_ERRORS
#1 1
Original database:
dat3 = data.frame(A_CaseID = c(1881, 1882, 1883, 1884, 1885),
B_MW_EEsDue1 = c(2, 2, 1, 4, 6),
C_MW_EEsDue2 = c(5, 5, 4, 1, 6),
D_MW_EEsDueTotal = c(7, 9, 5, 6, 112))
dat3
# A_CaseID B_MW_EEsDue1 C_MW_EEsDue2 D_MW_EEsDueTotal
# 1 1881 2 5 7
# 2 1882 2 5 9
# 3 1883 1 4 5
# 4 1884 4 1 6
# 5 1885 6 6 112
From: arun kirshna [via R] [mailto:ml-node+s789695n4671365h27 at n4.nabble.com]
Sent: Thursday, July 11, 2013 4:55 PM
To: Crombie, Burnette N
Subject: Re: create new matrix from user-defined function
Hi BNC,
No problem.
You could also use ?with()
data.frame(MW_EEsDue_ERRORS=with(dat3,A_CaseID[D_MW_EEsDueTotal!=rowSums(cbind(B_MW_EEsDue1,C_MW_EEsDue2))]))
# MW_EEsDue_ERRORS
#1 1882
#2 1884
#3 1885
A.K.
--
View this message in context: http://r.789695.n4.nabble.com/create-new-matrix-from-user-defined-function-tp4671250p4671445.html
Sent from the R help mailing list archive at Nabble.com.
[[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.
More information about the R-help
mailing list