R 通过多个数据集创建循环
对于同级数据,我正在尝试创建一个将运行sib1到sib10的循环。我想在每一列上向前循环&如果值是174,我想对这些列求和并将其设置为1。这种方法最好运行我的逻辑回归代码。我的问题是,每个sib1-sib10都是数据集,而不是单独的列。我举了一个sib1的例子。R 通过多个数据集创建循环,r,matrix,dataframe,R,Matrix,Dataframe,对于同级数据,我正在尝试创建一个将运行sib1到sib10的循环。我想在每一列上向前循环&如果值是174,我想对这些列求和并将其设置为1。这种方法最好运行我的逻辑回归代码。我的问题是,每个sib1-sib10都是数据集,而不是单独的列。我举了一个sib1的例子。 我希望这是有意义的,我一直在努力解决如何建立这种类型的循环 代码: sib1: 你可以这样做 # Your data as it appears in the question df <- structure(list(V1 =
我希望这是有意义的,我一直在努力解决如何建立这种类型的循环 代码: sib1:
你可以这样做
# Your data as it appears in the question
df <- structure(list(V1 = c(174L, 174L, 174L, 174L, 174L, 174L, 174L,
174L, 174L, 174L), V2 = c(174L, NA, NA, NA, NA, NA, NA, NA, NA,
NA), V3 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), V4 = c(NA,
NA, NA, NA, NA, NA, 174L, NA, NA, NA), V5 = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), V6 = c(NA, NA, NA, NA, NA, NA, 174L,
NA, NA, NA), V7 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
V8 = c(NA, NA, NA, NA, NA, NA, 174L, NA, NA, NA), V9 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), V10 = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA)), .Names = c("V1", "V2", "V3",
"V4", "V5", "V6", "V7", "V8", "V9", "V10"), class = "data.frame", row.names = c("1:",
"2:", "3:", "4:", "5:", "6:", "7:", "8:", "9:", "10:"))
df
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1: 174 174 NA NA NA NA NA NA NA NA
#2: 174 NA NA NA NA NA NA NA NA NA
#3: 174 NA NA NA NA NA NA NA NA NA
#4: 174 NA NA NA NA NA NA NA NA NA
#5: 174 NA NA NA NA NA NA NA NA NA
#6: 174 NA NA NA NA NA NA NA NA NA
#7: 174 NA NA 174 NA 174 NA 174 NA NA
#8: 174 NA NA NA NA NA NA NA NA NA
#9: 174 NA NA NA NA NA NA NA NA NA
#10: 174 NA NA NA NA NA NA NA NA NA
m <- as.matrix(df)
m[m==174] <- 1
colSums(m , na.rm = TRUE )
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
10 1 0 1 0 1 0 1 0 0
不清楚您想要什么,请给出输入和输出示例欢迎使用堆栈溢出!请在这里为好的人添加可复制的样品以帮助您。看看数据集中哪里有174,我想放一个1,然后对各列求和。最终输出应为1列,其中包含0和1。
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1: 174 174 NA NA NA NA NA NA NA NA
2: 174 NA NA NA NA NA NA NA NA NA
3: 174 NA NA NA NA NA NA NA NA NA
4: 174 NA NA NA NA NA NA NA NA NA
5: 174 NA NA NA NA NA NA NA NA NA
6: 174 NA NA NA NA NA NA NA NA NA
7: 174 NA NA 174 NA 174 NA 174 NA NA
8: 174 NA NA NA NA NA NA NA NA NA
9: 174 NA NA NA NA NA NA NA NA NA
10: 174 NA NA NA NA NA NA NA NA NA
# Your data as it appears in the question
df <- structure(list(V1 = c(174L, 174L, 174L, 174L, 174L, 174L, 174L,
174L, 174L, 174L), V2 = c(174L, NA, NA, NA, NA, NA, NA, NA, NA,
NA), V3 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), V4 = c(NA,
NA, NA, NA, NA, NA, 174L, NA, NA, NA), V5 = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), V6 = c(NA, NA, NA, NA, NA, NA, 174L,
NA, NA, NA), V7 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
V8 = c(NA, NA, NA, NA, NA, NA, 174L, NA, NA, NA), V9 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), V10 = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA)), .Names = c("V1", "V2", "V3",
"V4", "V5", "V6", "V7", "V8", "V9", "V10"), class = "data.frame", row.names = c("1:",
"2:", "3:", "4:", "5:", "6:", "7:", "8:", "9:", "10:"))
df
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1: 174 174 NA NA NA NA NA NA NA NA
#2: 174 NA NA NA NA NA NA NA NA NA
#3: 174 NA NA NA NA NA NA NA NA NA
#4: 174 NA NA NA NA NA NA NA NA NA
#5: 174 NA NA NA NA NA NA NA NA NA
#6: 174 NA NA NA NA NA NA NA NA NA
#7: 174 NA NA 174 NA 174 NA 174 NA NA
#8: 174 NA NA NA NA NA NA NA NA NA
#9: 174 NA NA NA NA NA NA NA NA NA
#10: 174 NA NA NA NA NA NA NA NA NA
m <- as.matrix(df)
m[m==174] <- 1
colSums(m , na.rm = TRUE )
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
10 1 0 1 0 1 0 1 0 0
df$ColTot <- colSums(m , na.rm = TRUE )
df
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 ColTot
#1: 174 174 NA NA NA NA NA NA NA NA 10
#2: 174 NA NA NA NA NA NA NA NA NA 1
#3: 174 NA NA NA NA NA NA NA NA NA 0
#4: 174 NA NA NA NA NA NA NA NA NA 1
#5: 174 NA NA NA NA NA NA NA NA NA 0
#6: 174 NA NA NA NA NA NA NA NA NA 1
#7: 174 NA NA 174 NA 174 NA 174 NA NA 0
#8: 174 NA NA NA NA NA NA NA NA NA 1
#9: 174 NA NA NA NA NA NA NA NA NA 0
#10: 174 NA NA NA NA NA NA NA NA NA 0