R 如何在不使用循环的情况下以紧凑高效的方式编写?

R 如何在不使用循环的情况下以紧凑高效的方式编写?,r,R,我知道在R中应该避免循环。重写此代码的最佳方法是什么 X <- structure(list(ELEMENT = c("TMAX", "TMIN", "PRCP", "AWND", "WDF2", "WSF2"), VALUE1 = c(309L, 249L, 76L, 27L, 110L, 67L), VALUE2 = c(317L, 274L, 20L, 66L, 110L, 93L),

我知道在R中应该避免循环。重写此代码的最佳方法是什么

X <- structure(list(ELEMENT = c("TMAX", "TMIN", "PRCP", "AWND", "WDF2", "WSF2"),
                    VALUE1 = c(309L, 249L, 76L, 27L, 110L, 67L),
                    VALUE2 = c(317L, 274L, 20L, 66L, 110L, 93L),
                    VALUE3 = c(311L, 266L, 0L, 41L, 120L,57L),
                    VALUE4 = c(308L, 262L, 0L, 31L, 120L, 57L),
                    VALUE5 = c(316L, 240L, 0L, 18L, 90L, 41L),
                    VALUE6 = c(305L, 242L, 51L, 20L, 100L, 36L),
                    VALUE7 = c(323L, 245L, 0L, 21L, 90L, 41L),
                    VALUE8 = c(330L, 250L, 287L, 30L, 70L, 62L)),
                    .Names = c("ELEMENT", "VALUE1", "VALUE2", "VALUE3", "VALUE4",
                               "VALUE5", "VALUE6", "VALUE7", "VALUE8"),
                    row.names = 10240:10245, class = "data.frame")

PRCP <- rep(NA, 8)
PRCP[1] <- X[X$ELEMENT=="PRCP",][[2]]
PRCP[2] <- X[X$ELEMENT=="PRCP",][[3]]
PRCP[3] <- X[X$ELEMENT=="PRCP",][[4]]
PRCP[4] <- X[X$ELEMENT=="PRCP",][[5]]
PRCP[5] <- X[X$ELEMENT=="PRCP",][[6]]
PRCP[6] <- X[X$ELEMENT=="PRCP",][[7]]
PRCP[7] <- X[X$ELEMENT=="PRCP",][[8]]
PRCP[8] <- X[X$ELEMENT=="PRCP",][[9]]
X是您要找的吗

unlist(X[X$ELEMENT == "PRCP",2:9], use.names=FALSE)
你在找什么

unlist(X[X$ELEMENT == "PRCP",2:9], use.names=FALSE)
我会用

 as.integer(X[X$ELEMENT == "PRCP",2:9])
或者“作为数字…”。(看起来你想要整数。)这和“unlist”没什么区别,但我通常就是这么做的。

我会使用

 as.integer(X[X$ELEMENT == "PRCP",2:9])

或者“作为数字…”。(看起来你想要整数。)这和“未列出”没什么不同,但我通常就是这么做的。

非常感谢。我喜欢学习如何写简短的代码:-)非常感谢。我喜欢学习如何编写简短的代码:-)