R 如何仅将字符值的一部分用于x轴

R 如何仅将字符值的一部分用于x轴,r,ggplot2,linechart,R,Ggplot2,Linechart,如果不允许我添加附加列,我如何仅选择要显示在x轴上的年份数据(图1中显示的数据的第一列)(参见图2中的所需结果) 非常感谢你的帮助 我建议使用ggplot2的方法。为了获得所需内容,可以使用substring()函数提取定义quarter变量的开始和结束位置的前四个元素。您还可以使用factor()保存所有年份,而不是像ggplot2那样显示数字量。在此,我添加了一个小示例: library(ggplot2) #Data df <- data.frame(quarter=paste0(

如果不允许我添加附加列,我如何仅选择要显示在x轴上的年份数据(图1中显示的数据的第一列)(参见图2中的所需结果)


非常感谢你的帮助

我建议使用
ggplot2
的方法。为了获得所需内容,可以使用
substring()
函数提取定义
quarter
变量的开始和结束位置的前四个元素。您还可以使用
factor()
保存所有年份,而不是像
ggplot2
那样显示数字量。在此,我添加了一个小示例:

library(ggplot2)
#Data
df <- data.frame(quarter=paste0(rep(c(1975:1980),each=4),'-','Q',rep(1:4,6)),
                 v2=seq(0,100,length.out = 24),stringsAsFactors = F)
#Plot
ggplot(df,aes(x=factor(substring(quarter,1,4)),y=v2,group=1))+
  geom_line()+
  xlab('year')+
  theme_bw()+
  theme(axis.text.x = element_text(angle=90))
库(ggplot2)
#资料

df请使用
dput
添加数据,而不是图像。请阅读信息和如何给予。嗨,鸭子,谢谢你的慷慨分享!然而,你能告诉我如何生成如图2所示的平滑图形吗?我认为您在这里创建了一个新列“factor(substring(quarter,1,4))”,但在图2中,1975年Q1和1975年Q2在“x轴”方面是不同的。在这种情况下,我想知道是否可以使用scale_x_continuous()或scale_x_discrete()来生成所需的结果,而不是修改数据?@Adriana这只是一个模拟变量
v2=seq(0100,length.out=24)
您可以更改
length.out
,使其与您的数据相匹配。如果我理解正确,您可以将代码更改为此
x=系数(四分之一)
,以便在x轴上显示四分之一!