I have this data frame:
dput(df)
structure(list(Server = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "servera", class = "factor"),
Date = structure(1:6, .Label = c("7/13/2017 15:01", "7/13/2017 15:02",
"7/13/2017 15:03", "7/13/2017 15:04", "7/13/2017 15:05",
"7/13/2017 15:06"), class = "factor"), Host_CPU = c(1.812950134,
2.288070679, 1.563278198, 1.925239563, 5.350669861, 2.612503052
), UsedMemPercent = c(38.19, 38.19, 38.19, 38.19, 38.19,
38.22), jvm1 = c(10.91, 11.13, 11.34, 11.56, 11.77, 11.99
), jvm2 = c(11.47, 11.7, 11.91, 12.13, 12.35, 12.57), jvm3 = c(75.65,
76.88, 56.93, 58.99, 65.29, 67.97), jvm4 = c(39.43, 40.86,
42.27, 43.71, 45.09, 45.33), jvm5 = c(27.42, 29.63, 31.02,
32.37, 33.72, 37.71)), .Names = c("Server", "Date", "Host_CPU",
"UsedMemPercent", "jvm1", "jvm2", "jvm3", "jvm4", "jvm5"), class = "data.frame", row.names = c(NA,
-6L))
我只想根据这个变量中的向量名称对数据帧进行子集筛选:
select<-c("jvm3", "jvm4", "jvm5")
所以,我的最终数据框应该长成这个样子:
structure(list(Server = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "servera", class = "factor"),
Date = structure(1:6, .Label = c("7/13/2017 15:01", "7/13/2017 15:02",
"7/13/2017 15:03", "7/13/2017 15:04", "7/13/2017 15:05",
"7/13/2017 15:06"), class = "factor"), Host_CPU = c(1.812950134,
2.288070679, 1.563278198, 1.925239563, 5.350669861, 2.612503052
), UsedMemPercent = c(38.19, 38.19, 38.19, 38.19, 38.19,
38.22), jvm3 = c(75.65, 76.88, 56.93, 58.99, 65.29, 67.97
), jvm4 = c(39.43, 40.86, 42.27, 43.71, 45.09, 45.33), jvm5 = c(27.42,
29.63, 31.02, 32.37, 33.72, 37.71)), .Names = c("Server",
"Date", "Host_CPU", "UsedMemPercent", "jvm3", "jvm4", "jvm5"), class = "data.frame", row.names = c(NA,
-6L))
有什么想法吗?
df[,select]
- A Goredf[c("Server", "Date", "Host_CPU", "UsedMemPercent", select)]
。或者你可以使用df[, c("Server", "Date", "Host_CPU", "UsedMemPercent", select)]
。或者subset(select = c("Server", "Date", "Host_CPU", "UsedMemPercent", select))
。请参阅?subset
以获取详细信息。或者?[
。 - Gregor Thomasdput(your_data)
的输出,如果您将其粘贴到表单your_data <- {insert the dput output here}
中,那就太好了。 - Dason[.data.frame
(data, c("Server", "Date", "Host_CPU", "UsedMemPercent", : 选择了未定义的列。 - user1471980subset
中错过了df
,应该是subset(df, select = c("Server", "Date", "Host_CPU", "UsedMemPercent", select))
。但其他代码都可以在你分享的数据上在新的R会话中运行。 - Gregor Thomas