繁体   English   中英

从包含R中的字符串的数据框中删除列

[英]Removing Column from Dataframe that contains a string in R

我正在尝试创建一个让人可以输入数据的闪亮应用程序。 为了使数据可用,我正在尝试删除在数据框df中具有字符串实例的任何列。 这个任务在python中确实很简单,但是在R中变得非常困难。

我的第一次尝试是

df[ ,colSums(apply(df, MARGIN=c(1,2),FUN=is.character))==0]

问题是应用隐式调用as.matrix(据我所知)将使数据框具有混合值,因此is。如果任何列中包含字符串,字符都会丢弃每一列!

我尝试了几个循环以遍历每个单元格并尝试删除一列,但这同样也失败了。

任何帮助或指示都将非常有用!

您不能具有混合类型的列(至少在R中没有)。 因此,一列可以具有数字,字符或因子值,但不能具有来自不同类型的值。 因此,您只需要检查列是否为字符,而不是每个值。 尝试:

df <- data.frame(c1 = 1:10, c2 = letters[1:10], c3 = sample(10, 10), c4 = letters[sample(10,10)], stringsAsFactors = FALSE)
df[!sapply(df, is.character)]
   c1 c3
1   1  4
2   2 10
3   3  5
4   4  6
5   5  7
6   6  3
7   7  9
8   8  8
9   9  2
10 10  1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM