[R] YALAQ - Yet Another LApply Question
Thompson, David (MNR)
David.John.Thompson at ontario.ca
Thu Oct 9 22:00:05 CEST 2008
Hello,
Two lapply questions (system info and sample data below):
1) Why does the first form of command1 add the name of y _after_ the
str() output rather than before as does the second (preferred) form?
# command1 version1
invisible(lapply(ls(pattern='bn'), function(y) cat(y, "\n",
str(get(y)), "\n") ))
# command1 version2 (preferred output)
invisible(lapply(ls(pattern='bn'), function(y) { cat(y, "\n") ;
str(get(y)) ; cat("\n") } ))
2) Why does the same method as command1 version2 above not work with the
summary() command as does the second (preferred) set of commands?
# command2 version1
lapply(ls(pattern='bn'), function(y) { cat(y, "\n") ; summary(get(y))
; cat("\n") } )
# command2 version2 (preferred output)
smry.list <- lapply(ls(pattern='bn'), function(y) summary(get(y)))
names(smry.list) <- ls(pattern='bn')
smry.list
Thanx, DaveT.
###
# system info:
> sessionInfo() ; cat("\n") ; Sys.info()[c(1:3,5)]
R version 2.7.2 (2008-08-25)
i386-pc-mingw32
locale:
LC_COLLATE=English_Canada.1252;LC_CTYPE=English_Canada.1252;LC_MONETARY=
English_Canada.1252;LC_NUMERIC=C;LC_TIME=English_Canada.1252
attached base packages:
[1] stats graphics grDevices datasets tcltk utils methods
base
other attached packages:
[1] debug_1.1.0 mvbutils_1.1.1 lattice_0.17-14 plotrix_2.4-7
svSocket_0.9-5 TinnR_1.0.2 R2HTML_1.59 Hmisc_3.4-3
loaded via a namespace (and not attached):
[1] cluster_1.11.11 grid_2.7.2 svMisc_0.9-5 tools_2.7.2
sysname release
version machine
"Windows" "XP" "build 2600,
Service Pack 2" "x86"
# system info:
###
###
# sample data
# dput(ban.nat.1994[sample(row.names(ban.nat.1994), 20),])
bn94 <- structure(list(oplt = c(18L, 50L, 11L, 16L, 54L, 35L, 45L, 40L,
15L, 50L, 38L, 45L, 53L, 15L, 1L, 54L, 33L, 13L, 30L, 21L), tree =
c(144L,
824L, 47L, 525L, 291L, 702L, 717L, 615L, 821L, 551L, 750L, 639L,
664L, 813L, 31L, 346L, 689L, 59L, 200L, 658L), bd1 = c(NA, NA,
3.6, 3.1, 4.72, 2.03, 2.88, 1.65, 5.39, 3.04, 2.75, 3.06, 2.81,
2.78, NA, 6.5, 4.62, 4.76, NA, 2.69), bd2 = c(NA, NA, 3.41, 3.06,
4.86, 2.09, 2.78, 1.8, 5.08, 3.26, 2.71, 3.1, 2.87, 2.73, NA,
6.6, 4.53, 4.97, NA, 2.81), bd = c(NA, 4.25, 3.51, 3.08, 4.79,
2.06, 2.83, 1.72, 5.23, 3.15, 2.73, 3.08, 2.84, 2.76, NA, 6.55,
4.58, 4.87, NA, 2.75), ht = c(NA, 20.4, 18.1, 18, 25.8, 13.1,
15.7, 4, 16, 14, 12.7, 8.6, 8.1, 16.2, NA, 52.7, 31.7, 23.7,
NA, 17.6), spr = c(NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_), stat = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L), dam = c(NA, 2L, NA,
NA, NA, NA, NA, 2L, NA, NA, 2L, NA, 1L, NA, NA, NA, 1L, NA, NA,
NA), com = c("", "from partial data set, tend = 1", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "")), .Names =
c("oplt",
"tree", "bd1", "bd2", "bd", "ht", "spr", "stat", "dam", "com"
), row.names = c(1049L, 2845L, 549L, 884L, 3128L, 1887L, 2432L,
2087L, 879L, 2729L, 1990L, 2421L, 3089L, 871L, 3L, 3158L, 1801L,
704L, 1653L, 1215L), class = "data.frame")
# dput(ban.nat.1995[sample(row.names(ban.nat.1995), 20),])
bn95 <- structure(list(oplt = c(2L, 27L, 54L, 8L, 8L, 51L, 3L, 4L, 20L,
35L, 15L, 22L, 31L, 7L, 4L, 31L, 34L, 6L, 20L, 51L), tree = c(773L,
308L, 331L, 234L, 235L, 170L, 211L, 701L, 745L, 709L, 798L, 350L,
207L, 736L, 718L, 240L, 193L, 266L, 735L, 244L), bd1 = c(8.41,
NA, 6.93, 2.74, 6.06, 2.36, 5.87, 3.53, 2.48, NA, 9, 4.18, 1.74,
3.42, 5.54, 3.74, 3.26, 2.38, 4.42, 3.65), bd2 = c(8.76, NA,
7.17, 2.82, 6.16, 2.33, 6.05, 2.58, 2.5, NA, 9.04, 4.22, 1.68,
3.39, 5.52, 3.68, 3.18, 2.38, 4.47, 3.74), bda = c(8.59, NA,
7.05, 2.78, 6.11, 2.34, 5.96, 3.05, 2.49, NA, 9.02, 4.2, 1.71,
3.41, 5.53, 3.71, 3.22, 2.38, 4.44, 3.7), ht = c(69.2, NA, 55.2,
25.7, 47.8, 17.1, 35.6, 11, 12, NA, 52.5, 33.2, 10.4, 16.2, 32.7,
22.1, 15, 13.6, 24.5, 22.4), spr = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), stat = c(0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), dam = c(NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA), com = c("", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "")), .Names =
c("oplt",
"tree", "bd1", "bd2", "bda", "ht", "spr", "stat", "dam", "com"
), row.names = c(34L, 462L, 724L, 227L, 228L, 673L, 76L, 123L,
368L, 632L, 281L, 391L, 495L, 199L, 140L, 528L, 604L, 191L, 358L,
689L), class = "data.frame")
# dput(ban.nat.1996[sample(row.names(ban.nat.1996), 20),])
bn96 <- structure(list(oplt = c(23L, 33L, 22L, 19L, 27L, 3L, 27L, 19L,
48L, 31L, 54L, 37L, 42L, 45L, 51L, 51L, 27L, 44L, 22L, 33L),
tree = c(616L, 709L, 426L, 233L, 441L, 213L, 411L, 231L,
714L, 206L, 355L, 638L, 266L, 201L, 345L, 298L, 151L, 374L,
571L, 708L), bd1 = c(4.68, 1.92, 4.89, 4.88, 2.02, 4.2, 2,
2.85, 3.38, 2.48, 3.42, NA, 2.1, 2.05, 1.98, 2.26, NA, 5.16,
2.9, 2.32), bd2 = c(4.7, 1.98, 4.94, 5.14, NA, 3.96, NA,
2.9, 3.2, 2.42, 3.36, NA, 2, 2.02, NA, NA, NA, 5.2, 2.8,
2.24), bd = c(4.69, 1.95, 4.92, 5.01, NA, 4.08, NA, 2.88,
3.29, 2.45, 3.39, NA, 2.05, 2.03, NA, NA, NA, 5.18, 2.85,
2.28), ht = c(31.9, 14.7, 30.7, 24.2, 9.5, 24.3, 8.2, 28.1,
22.5, 10.6, 35.5, NA, 13.3, 9.3, 20.2, 10, NA, 24.7, 18.5,
15.7), spr = c(NA, NA, NA, 2L, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), stat = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L), dam = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 2L, NA, NA), yrc = c(95L, 95L,
95L, 95L, 93L, 95L, 93L, 95L, 94L, 95L, 95L, 95L, 94L, 96L,
93L, 93L, 95L, NA, 95L, 95L), az = c(NA, 172L, NA, NA, 276L,
NA, 243L, NA, 221L, 2L, 80L, 270L, 342L, NA, 240L, 170L,
6L, NA, NA, 155L), dist = c(NA, 11.21, NA, NA, 8.1, NA, 15.94,
NA, 9.11, 9.23, 6.39, 6.45, 10.88, NA, 12.42, 15.19, 15.16,
NA, NA, 13.52), com = c("", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "new", "", "")), .Names = c("oplt",
"tree", "bd1", "bd2", "bd", "ht", "spr", "stat", "dam", "yrc",
"az", "dist", "com"), row.names = c(366L, 758L, 335L, 285L, 600L,
61L, 583L, 283L, 1184L, 671L, 1422L, 818L, 930L, 1006L, 1331L,
1299L, 447L, 996L, 343L, 757L), class = "data.frame")
# sample data
###
*************************************
Silviculture Data Analyst
Ontario Forest Research Institute
Ontario Ministry of Natural Resources
david.john.thompson at ontario.ca
http://ontario.ca/ofri
More information about the R-help
mailing list