Skip to content

Commit c618a9a

Browse files
committed
update
1 parent 339cc43 commit c618a9a

File tree

5 files changed

+242
-1
lines changed

5 files changed

+242
-1
lines changed

ex_assign_and_eval/assign_and_eval.R

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# assign function
2+
a <- 10
3+
assign("a", 10) # equal
4+
# paste function
5+
x <- paste("Hello", "World", sep = "") # "HelloWorld"
6+
x <- paste("Hello", "World", sep = " ") # "Hello World"
7+
8+
9+
10+
for(i in 1:6) { #-- Create objects 'r.1', 'r.2', ... 'r.6' --
11+
nam <- paste("r", i, sep = ".")
12+
assign(nam, 1:i) # r.1 -> 1, r.2 -> 1,2, ... r.6 -> 1,2,3,4,5,6
13+
}
14+
print(ls(pattern = "^r..$"))
15+
# [1] "r.1" "r.2" "r.3" "r.4" "r.5" "r.6"
16+
17+
# create vecters
18+
# create objects by for loop
19+
20+
for( i in seq(5)){
21+
assign(paste("Test", i, sep = ""),
22+
# sample func: if replace = T and sampling from over 200, Walket's alias method (Ripley, 1987) is used
23+
sample(10:100, size = 10, replace = TRUE),
24+
env = .GlobalEnv) # set as global variable
25+
}
26+
27+
# create dataframes by for loop
28+
for( i in seq(5)) {
29+
assign(paste("TestDF", i, sep = ""),
30+
data.frame(TEST1 = sample(10:100, size = 10, replace = TRUE),
31+
TEST2 = sample(200:300, size = 10, replace = TRUE)),
32+
env = .GlobalEnv)
33+
}
34+
35+
print(ls())
36+
37+
# [1] "i" "Test1" "Test2" "Test3" "Test4" "Test5" "TestDF1"
38+
# [8] "TestDF2" "TestDF3" "TestDF4" "TestDF5"
39+
40+
# eval(parse(text = "commands"))
41+
# print Test1 to Test5 with labels
42+
for( i in seq(5)) {
43+
cat(eval(parse(text = paste("Test", i, sep = ""))),
44+
labels = paste("Test", i, ":", sep = ""), fill = TRUE)
45+
}
46+
47+
# Test1: 86 10 47 73 17 59 42 12 77 99
48+
# Test2: 56 27 90 52 38 86 53 31 99 85
49+
# Test3: 68 37 88 50 11 56 41 30 58 60
50+
# Test4: 61 73 73 16 31 97 32 21 31 62
51+
# Test5: 31 92 56 16 94 62 92 13 16 50
52+
53+
# Plot TestDF1 to TestDF5 in a canvas
54+
layout(matrix(seq(5), rep(1, 5)), 1, 5)
55+
ColSet <- c("#d9bb9c", "#4b61ba", "#deb7a0", "#a87963", "#28231e")
56+
57+
for( i in seq(5)) {
58+
plot(eval(parse(text = paste("TestDF", i, "[, 1]", sep = ""))),
59+
eval(parse(text = paste("TestDF", i, "[, 2]", sep = ""))),
60+
xlab = "", ylab = "", main = paste("TestDF", i, sep = ""),
61+
col = ColSet[i], pch = 15, cex = 4)
62+
}
63+
64+
# > paste("TestDF", 1, "[, 1]", sep = "")
65+
# [1] "TestDF1[, 1]"
66+
# > parse(text = paste("TestDF", 1, "[, 1]", sep = ""))
67+
# expression(TestDF1[, 1])
68+
# > eval(parse(text = paste("TestDF", 1, "[, 1]", sep = "")))
69+
# [1] 78 62 95 68 95 36 87 55 18 29
70+
71+
# eval(substitute(do.call()))
72+
73+
# yarrr
74+
library(yarrr)
75+
76+
par(mfrow = c(2,2))
77+
loop.vector <- 1:4
78+
79+
for (i in loop.vector) {
80+
x <- examscores[, i]
81+
hist(x,
82+
main = paste("Question", i),
83+
xlab = "Scores",
84+
xlim = c(0, 100))
85+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
rm(list = ls())
2+
yieldData <- read.table("./yieldData.dat", header = TRUE)
3+
4+
library(lme4)
5+
lmer.m <- lmer(Yield ~ Treatment + (1|Plot), yieldData)
6+
7+
library(emmeans)
8+
lsm.lmer.m <- lsmeans(lmer.m, specs="Treatment")
9+
10+
summ.lsm.lmer.m <- summary(lsm.lmer.m)
11+
lsm <- summ.lsm.lmer.m$lsmean
12+
ui <- summ.lsm.lmer.m$lsmean + summ.lsm.lmer.m$SE
13+
li <- summ.lsm.lmer.m$lsmean - summ.lsm.lmer.m$SE
14+
15+
par(las = 1,
16+
cex = 1.5,
17+
family = "sans",
18+
lwd = 2)
19+
x <- barplot(lsm,
20+
ylim = c(0, 80),
21+
names.arg = c("Control", "Pesticide"),
22+
xlab = "Treatment",
23+
ylab = "Yield/plant (mg)")
24+
arrows(x, ui, x, li, angle = 90, code = 3)

pseudoreplication_and_random_effect/least-square-means.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ yieldData <- read.table("./yieldData.dat", header = TRUE)
44
library(lme4)
55
lmer.m <- lmer(Yield ~ Treatment + (1|Plot), yieldData)
66

7-
library(lsmeans)
7+
library(emmeans)
88
print(lsm.lmer.m <- lsmeans(lmer.m, specs="Treatment"))
99

1010
# Loading required package: emmeans
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
rm(list = ls())
2+
growthData <- read.table("./growthData.dat", header = TRUE)
3+
growthData$Day <- as.factor(growthData$Day)
4+
attach(growthData)
5+
6+
library(lme4)
7+
library(emmeans)
8+
9+
growth.lmer.m <- lmer(log(Mass) ~ Food * Day + (1|ID), growthData)
10+
11+
# 同じ日の中で, 処理間で体重が異なるか
12+
print(lsmeans(growth.lmer.m, specs = c("Food", "Day")))
13+
14+
# Loading required package: Matrix
15+
# Food Day lsmean SE df lower.CL upper.CL
16+
# A 1 3.89 0.0367 12.2 3.81 3.97
17+
# B 1 3.93 0.0367 12.2 3.85 4.01
18+
# A 3 4.06 0.0420 13.9 3.97 4.15
19+
# B 3 4.34 0.0367 12.2 4.26 4.42
20+
# A 5 4.24 0.0420 13.9 4.15 4.33
21+
# B 5 4.74 0.0420 13.9 4.65 4.83
22+
#
23+
# Degrees-of-freedom method: kenward-roger
24+
# Results are given on the log (not the response) scale.
25+
# Confidence level used: 0.95
26+
27+
cat("\n")
28+
# すべての組み合わせで事後検定を行う
29+
print(pairs(lsmeans(growth.lmer.m, specs = c("Food", "Day"))))
30+
31+
# contrast estimate SE df t.ratio p.value
32+
# A 1 - B 1 -0.036 0.0520 12.16 -0.693 0.9794
33+
# A 1 - A 3 -0.168 0.0456 9.61 -3.680 0.0384
34+
# A 1 - B 3 -0.450 0.0520 12.16 -8.658 <.0001
35+
# A 1 - A 5 -0.348 0.0456 9.61 -7.628 0.0002
36+
# A 1 - B 5 -0.852 0.0558 13.19 -15.282 <.0001
37+
# B 1 - A 3 -0.132 0.0558 13.17 -2.360 0.2380
38+
# B 1 - B 3 -0.414 0.0408 9.05 -10.153 <.0001
39+
# B 1 - A 5 -0.312 0.0558 13.17 -5.585 0.0009
40+
# B 1 - B 5 -0.816 0.0455 9.57 -17.930 <.0001
41+
# A 3 - B 3 -0.282 0.0558 13.17 -5.054 0.0023
42+
# A 3 - A 5 -0.180 0.0511 10.47 -3.522 0.0442
43+
# A 3 - B 5 -0.685 0.0594 13.88 -11.527 <.0001
44+
# B 3 - A 5 0.102 0.0558 13.17 1.829 0.4814
45+
# B 3 - B 5 -0.402 0.0455 9.57 -8.840 0.0001
46+
# A 5 - B 5 -0.505 0.0594 13.88 -8.496 <.0001
47+
#
48+
# Degrees-of-freedom method: kenward-roger
49+
# Results are given on the log (not the response) scale.
50+
# P value adjustment: tukey method for comparing a family of 6 estimates
51+
52+
cat("\n")
53+
# Day で場合分けし, Food に注目する
54+
print(lsmeans(growth.lmer.m, specs = "Food", by = "Day"))
55+
56+
# Day = 1:
57+
# Food lsmean SE df lower.CL upper.CL
58+
# A 3.89 0.0367 12.2 3.81 3.97
59+
# B 3.93 0.0367 12.2 3.85 4.01
60+
#
61+
# Day = 3:
62+
# Food lsmean SE df lower.CL upper.CL
63+
# A 4.06 0.0420 13.9 3.97 4.15
64+
# B 4.34 0.0367 12.2 4.26 4.42
65+
#
66+
# Day = 5:
67+
# Food lsmean SE df lower.CL upper.CL
68+
# A 4.24 0.0420 13.9 4.15 4.33
69+
# B 4.74 0.0420 13.9 4.65 4.83
70+
#
71+
# Degrees-of-freedom method: kenward-roger
72+
# Results are given on the log (not the response) scale.
73+
# Confidence level used: 0.95
74+
75+
cat("\n")
76+
# pairs 関数で囲むと, Day で場合分けした水準ごとに(水準内), 繰り返し事後検定を実行する
77+
print(pairs(lsmeans(growth.lmer.m, specs = "Food", by = "Day"), adjust = "tukey"))
78+
79+
# Day = 1:
80+
# contrast estimate SE df t.ratio p.value
81+
# A - B -0.036 0.0520 12.2 -0.693 0.5014
82+
#
83+
# Day = 3:
84+
# contrast estimate SE df t.ratio p.value
85+
# A - B -0.282 0.0558 13.2 -5.054 0.0002
86+
#
87+
# Day = 5:
88+
# contrast estimate SE df t.ratio p.value
89+
# A - B -0.505 0.0594 13.9 -8.496 <.0001
90+
#
91+
# Degrees-of-freedom method: kenward-roger
92+
# Results are given on the log (not the response) scale.
93+
94+
cat("\n")
95+
# 3 つの比較全体, 水準間の p 値の調整を実行する
96+
print(rbind(pairs(lsmeans(growth.lmer.m, specs = "Food", by = "Day")), adjust = "tukey"))
97+
98+
# Note: adjust = "tukey" was changed to "sidak"
99+
# because "tukey" is only appropriate for one set of pairwise comparisons
100+
# Day contrast estimate SE df t.ratio p.value
101+
# 1 A - B -0.036 0.0520 12.2 -0.693 0.8760
102+
# 3 A - B -0.282 0.0558 13.2 -5.054 0.0006
103+
# 5 A - B -0.505 0.0594 13.9 -8.496 <.0001
104+
#
105+
# Degrees-of-freedom method: kenward-roger
106+
# Results are given on the log (not the response) scale.
107+
# P value adjustment: sidak method for 3 tests
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
rm(list = ls())
2+
growthData <- read.table("./growthData.dat", header = TRUE)
3+
growthData$Day <- as.factor(growthData$Day)
4+
attach(growthData)
5+
6+
library(lme4)
7+
library(car)
8+
9+
growth.lmer.m <- lmer(log(Mass) ~ Food * Day + (1|ID), growthData)
10+
print(Anova(growth.lmer.m, test = "F"))
11+
12+
# The following objects are masked from growthData (pos = 3):
13+
#
14+
# Day, Food, ID, Mass
15+
#
16+
# Analysis of Deviance Table (Type II Wald F tests with Kenward-Roger df)
17+
#
18+
# Response: log(Mass)
19+
# F Df Df.res Pr(>F)
20+
# Food 35.249 1 5.7562 0.0011830 ** # 個体差を無視した, two-way ANOVA の分析値より p 値が下がっている
21+
# Day 165.941 2 9.5603 3.777e-08 ***
22+
# Food:Day 27.124 2 9.6315 0.0001104 ***
23+
# Df.res, 分母自由度が整数ではなくなっている
24+
# ---
25+
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

0 commit comments

Comments
 (0)