从数据框中仅提取数字列 [英] extract only numeric columns from data frame
本文介绍了从数据框中仅提取数字列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在互联网上看过,但是找不到一个简单干净的解决方案.
I looked in the internet but I didn't find a easy and clean solution.
这是我的df片段:
structure(list(ID = structure(c(12L, 12L, 12L, 12L, 12L, 12L,
12L, 12L, 12L, 12L), .Label = c("B0F", "B12T", "B1T", "B21T",
"B22F", "B26T", "B2F", "B33F", "B3F", "B4F", "B7F", "P1", "P21",
"P24", "P25", "P27", "P28", "P29"), class = "factor"), Data = structure(c(9646,
9836, 9938, 10043, 10134, 10203, 10302, 10354, 10421, 10528), class = "Date"),
T = c(11.3, 9.7, 9.8, 10.5, 9.9, 10, 10, 10.1, 10, 10), ph = c(6.8,
6.9, 7.1, 6.9, 7, 6.93, 7.01, 6.9, 7.01, 6.84), EC = c(1840L,
1060L, 940L, 760L, 820L, 1038L, 1035L, 839L, 767L, 433L)), .Names = c("ID",
"Data", "T", "ph", "EC"), row.names = c(NA, 10L), class = "data.frame")
这些是变量:
str(df)
'data.frame': 10 obs. of 5 variables:
$ ID : Factor w/ 18 levels "B0F","B12T","B1T",..: 12 12 12 12 12 12 12 12 12 12
$ Data: Date, format: "1996-05-30" "1996-12-06" "1997-03-18" ...
$ T : num 11.3 9.7 9.8 10.5 9.9 10 10 10.1 10 10
$ ph : num 6.8 6.9 7.1 6.9 7 6.93 7.01 6.9 7.01 6.84
$ EC : int 1840 1060 940 760 820 1038 1035 839 767 433
我需要的是带有数字列原始值(例如T,pH和EC)的新df.我知道可以通过简单的列提取(new_df=df[,3:5])
来完成此操作,但是我在很多df上都应执行此操作.
What I need is a new df with the original values of the numerical columns (so T, pH and EC). I know this could be done with a simple columns extraction (new_df=df[,3:5])
but I have a lot of df on which this operation should be done.
谢谢
推荐答案
如何
new_df <- df[sapply(df,is.numeric)]
?
这篇关于从数据框中仅提取数字列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文