将json类型列转换为R数据帧
这里我有一个数据帧将json类型列转换为R数据帧,r,json,dataframe,text-mining,R,Json,Dataframe,Text Mining,这里我有一个数据帧df1,我想把它变成一个数据帧df2。有人有什么建议/想法吗 df1 <- data.frame (ID = c("UniqueValue1", "UniqueValue2", "UniqueValue3", "UniqueValue4", "UniqueValue5", "UniqueValue6"
df1
,我想把它变成一个数据帧df2
。有人有什么建议/想法吗
df1 <- data.frame (ID = c("UniqueValue1", "UniqueValue2", "UniqueValue3",
"UniqueValue4", "UniqueValue5", "UniqueValue6"),
stringtext = c("Factor1:1.0, Factor2:2.0, Factor3:3.0"))
df1您可以尝试类似的方法,它可能不太优雅,但会得到您想要的结果
column_names <- as.data.frame(unlist(str_split(df1$stringtext,","))) %>%
setNames(c("factor")) %>%
distinct() %>%
mutate(factor = trimws(factor)) %>%
mutate(factor = gsub(":.+$","",factor))
df1 <- df1 %>%
tidyr::separate(stringtext, column_names$factor ,sep=",")
df <- as.data.frame((sapply(df1,function(x) gsub("^F.+:","",trimws(x)))))
列名称%
集合名(c(“因子”))%>%
不同的()%>%
突变(因子=trimws(因子))%>%
突变(因子=gsub(“:.+$”,“,因子))
df1%
tidyr::separate(stringtext,列名称$factor,sep=“,”)
df如果列中有json字符串,那么可以尝试一件事-
map\u dfr
来自purrr
包,fromJSON
来自jsonlite
df <- map_dfr(df$ColumnWithJsonString, fromJSON)
df谢谢!是否有一种方法不必手动指定“Factor1”、“Factor2”和“Factor3”?比如,如果冒号后面有什么,把它变成一列,冒号后面有什么,把它变成它的特定值。如果我们能做到这一点,那就太棒了。非常感谢你的帮助。非常感谢!不用担心,试试上面的方法。
df <- map_dfr(df$ColumnWithJsonString, fromJSON)