如果数据帧中指定列的行在R中有字符串变量,如何提取和合并该列的相应行变量?
因此,我有一个数据框,在R中,我想通过如果数据帧中指定列的行在R中有字符串变量,如何提取和合并该列的相应行变量?,r,dataframe,R,Dataframe,因此,我有一个数据框,在R中,我想通过info对一列的术语进行条形图,这里有一种方法: i <- df$ForPlot != '' df$ForPlot[i] <- paste(df$Name[i], df$ForPlot[i]) i您可以使用ifelse df$ForPlot <- ifelse(df$ForPlot != "", paste(df$Name, df$ForPlot), " ") > df #Name ForPlot #1 Cool
info对一列的术语进行条形图,这里有一种方法:
i <- df$ForPlot != ''
df$ForPlot[i] <- paste(df$Name[i], df$ForPlot[i])
i您可以使用ifelse
df$ForPlot <- ifelse(df$ForPlot != "", paste(df$Name, df$ForPlot), " ")
> df
#Name ForPlot
#1 Cool
#2 nice nice ready soft
#3 fast
#4 slow slow party
#5 good good low
#6 bad
#7 true true yo fit
#8 false
df$ForPlot df
#绘图名称
#1酷
#2好的,好的,软的
#3快
#4慢派对
#5好-好-低
#6糟糕
#7真正的溜溜球
#8错误
编辑:根据@Robert Dove的评论更新了答案我们可以使用数据。表
。我们将'data.frame'转换为'data.table'(setDT(df1')
),使用'i'中的逻辑条件(ForPlot!='
),我们通过粘贴ing'Name'和'ForPlot'列来分配'ForPlot'。这应该是非常快的,因为我们正在进行分配
library(data.table)
setDT(df1)[ForPlot!='', ForPlot:= paste(Name, ForPlot)]
df1
# ID Name ForPlot
#1: 1 cool
#2: 2 nice nice ready soft
#3: 3 fast
#4: 4 slow slow party
#5: 5 good good low
#6: 6 bad
#7: 7 true true yo fit
#8: 8 false
更新
如果转换后需要词频的条形图,我们可以按空格(strsplit
)拆分“ForPlot”列,取消列出输出的列表
,使用表
获得频率,然后使用条形图
进行打印
barplot(table(unlist(strsplit(df1$ForPlot, ' '))))
谢谢,但请注意,df$ForPlot I更新了帖子,检查这是否是您想要的。如果频率计数较低,您将如何通过设置频率计数的刻度限制200来更改维度?@RobertDove Trytbl 200])
您的更新答案有效,但您的回复答案生成了一个没有文本的灰色块。@RobertDove您可以尝试使用strsplit(as.character(df1$ForPlot),“”)
library(data.table)
setDT(df1)[ForPlot!='', ForPlot:= paste(Name, ForPlot)]
df1
# ID Name ForPlot
#1: 1 cool
#2: 2 nice nice ready soft
#3: 3 fast
#4: 4 slow slow party
#5: 5 good good low
#6: 6 bad
#7: 7 true true yo fit
#8: 8 false
barplot(table(unlist(strsplit(df1$ForPlot, ' '))))