Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在从数据帧中删除在R中包含字符串的列_R_String_Parsing_Character_Frames - Fatal编程技术网

正在从数据帧中删除在R中包含字符串的列

正在从数据帧中删除在R中包含字符串的列,r,string,parsing,character,frames,R,String,Parsing,Character,Frames,我正在尝试创建一个闪亮的应用程序,允许人们输入数据。为了使数据可用,我试图删除在dataframe df中具有字符串实例的任何列。这项任务在python中非常简单,但在R中变得相当困难 我的第一次尝试是 df[ ,colSums(apply(df, MARGIN=c(1,2),FUN=is.character))==0] 问题是apply隐式调用as.matrix(据我所知),这将使数据帧具有混合值,因此is.character会在任何列中包含字符串时删除每一列 我尝试了几个循环来遍历每个单元

我正在尝试创建一个闪亮的应用程序,允许人们输入数据。为了使数据可用,我试图删除在dataframe df中具有字符串实例的任何列。这项任务在python中非常简单,但在R中变得相当困难

我的第一次尝试是

df[ ,colSums(apply(df, MARGIN=c(1,2),FUN=is.character))==0]
问题是apply隐式调用as.matrix(据我所知),这将使数据帧具有混合值,因此is.character会在任何列中包含字符串时删除每一列

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


任何帮助或指点都会非常有用

不能有混合类型的列(至少不在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
df