我有一个包含两列的数据框。一栏是产品类型,另一栏是字符。我本质上是想将该列“产品”分为每个级别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'))
我尝试了这两种方法,并且正在创建数据框,但其中没有任何内容。谁能抓住我的错误?
答案 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')