在执行子集时,数据框未填充?

时间:2018-09-16 18:34:53

标签: r dplyr

我有一个包含两列的数据框。一栏是产品类型,另一栏是字符。我本质上是想将该列“产品”分为每个级别12个不同的数据帧。因此,对于第一级,我正在运行以下代码:

df = df %>% select('product','comments') 
df['product'] = as.character(df['product']) 
df['comments'] = as.character(df['comments'])

现在数据框位于我想要的结构中,我想采用各种子集,这是我的第一个子集代码:

df_boatstone = df[df$product == 'water',]
#df_boatstone <- subset(df, product == "boatstone", select = c('product','comments'))

我尝试了这两种方法,并且正在创建数据框,但其中没有任何内容。谁能抓住我的错误?

1 个答案:

答案 0 :(得分:2)

as.character适用于vector,而df['product']df['comments']都是data.frame且只有一列

df[['product']] <- as.character(df[['product']])

或更妙的是

library(tidyverse)
df %>% 
    select(product, comments) %>%
    mutate_all(as.character) %>%
    filter(product == 'water')