[英]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.