R 如何循环列并根据相同的值对数据集进行子集
我试图循环遍历具有相同值的列和子集数据 见下文R 如何循环列并根据相同的值对数据集进行子集,r,loops,subset,data-management,R,Loops,Subset,Data Management,我试图循环遍历具有相同值的列和子集数据 见下文 White <- rep(0:1, 50) Latino <- rep(0:1, 50) Black <- rep(0:1, 50) Asian <- rep(0:1, 50) DV <- seq(1: length(rep(0:1, 50))) x <- data.frame(cbind(White, Latino, Black, Asian, DV)) race <- c("White", "Lat
White <- rep(0:1, 50)
Latino <- rep(0:1, 50)
Black <- rep(0:1, 50)
Asian <- rep(0:1, 50)
DV <- seq(1: length(rep(0:1, 50)))
x <- data.frame(cbind(White, Latino, Black, Asian, DV))
race <- c("White", "Latino", "Black", "Asian")
for(j in race){
for (i in race){
df_1 <- subset(x, i == 1)
df_2 <- subset(x, j == 1)
print(paste(i, j, sep = " "))
print(t.test(df_1$DV, df_2$DV) )
}
}
White注意,代码中的i
和j
是一个字符串,但实际上您希望提取该列,如
for(比赛中的j){
(我参加了比赛){
df_1注意,代码中的i
和j
是一个字符串,但实际上您希望提取该列,如
for(比赛中的j){
(我参加了比赛){
df_1您可能需要添加get
for(j in race){
for (i in race){
df_1 <- subset(x, get(i) == 1)
df_2 <- subset(x, get(j) == 1)
print(paste(i, j, sep = " "))
print(t.test(df_1$DV, df_2$DV) )
}
}
for(比赛中的j){
(我参加了比赛){
df_1您可能需要添加get
for(j in race){
for (i in race){
df_1 <- subset(x, get(i) == 1)
df_2 <- subset(x, get(j) == 1)
print(paste(i, j, sep = " "))
print(t.test(df_1$DV, df_2$DV) )
}
}
for(比赛中的j){
(我参加了比赛){
df_1在R
中,我们也可以使用外部
f1 <- function(u, v) list(t.test(x$DV[x[[u]] ==1], x$DV[x[[v]] == 1]))
out <- outer(race, race, FUN = Vectorize(f1))
out[1,1]
#[[1]]
# Welch Two Sample t-test
#data: x$DV[x[[u]] == 1] and x$DV[x[[v]] == 1]
#t = 0, df = 98, p-value = 1
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -11.57133 11.57133
#sample estimates:
#mean of x mean of y
# 51 51
在R
中,我们也可以使用outer
f1 <- function(u, v) list(t.test(x$DV[x[[u]] ==1], x$DV[x[[v]] == 1]))
out <- outer(race, race, FUN = Vectorize(f1))
out[1,1]
#[[1]]
# Welch Two Sample t-test
#data: x$DV[x[[u]] == 1] and x$DV[x[[v]] == 1]
#t = 0, df = 98, p-value = 1
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -11.57133 11.57133
#sample estimates:
#mean of x mean of y
# 51 51
太棒了!非常感谢您的帮助。非常好!很高兴协助,享受编码!太棒了!非常感谢您的帮助。非常好!很高兴协助,享受编码!太棒了!非常感谢您的回答。这非常棒helpful@SharifAmlaniyw:-)快乐编码:-)太好了!非常感谢您的回答。这非常有趣helpful@SharifAmlani yw:-)快乐编码:-)