小编Cis*_*ska的帖子

从数据框中选择数字列和名称指定的一列

我有一个包含数字和非数字列的数据框,比方说

df <- data.frame(v1=1:20,v2=1:20,v3=1:20,v4=letters[1:20],v5=letters[1:20])
Run Code Online (Sandbox Code Playgroud)

要仅选择我将使用的非数字列

fixCol <- !sapply(df,is.numeric)
Run Code Online (Sandbox Code Playgroud)

但现在我还想要包含一个特定的数字列,比如说v2.我的数据框非常大,列的顺序发生了变化,因此我无法使用数字对其进行索引,我真的想使用名称"v2".我试过了

fixCol$v2 = TRUE
Run Code Online (Sandbox Code Playgroud)

但是这给了我警告In fixCol$FR = TRUE : Coercing LHS to a list,这使我无法将原始数据框子集化为仅获得fixCol

df[,fixCol]
Run Code Online (Sandbox Code Playgroud)

得到: Error in .subset(x, j) : invalid subscript type 'list'

最后,我的目标是缩放我的数据框的所有数字列,除了这一个指定的列,使用类似的东西

scaleCol = !fixCol
df_scaled = cbind(df[,fixCol], sapply(df[,scaleCol],scale))
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能做到最好?

r numeric scale

6
推荐指数
1
解决办法
276
查看次数

如何在R中的x轴上使用两个分类变量制作散点图

我正在尝试在x轴上使用两个分类变量在R中创建散点图。对于箱线图,我知道如何执行此操作(请参见下面的代码的第一部分),但是以某种方式,我无法使其用于散点图。我已经尝试了几件事,但是当我绘制点时,它们总是重叠并且不再显示第二个分类变量。抖动也不起作用,因为我希望我的类别聚类并且不要随机分散它们。有谁知道如何做到这一点?在下面,您可以找到一些示例数据和我尝试过的一些图形,包括注释。第一张图给我的东西与我想要的东西相似,但随后是一个箱线图而不是散点图。第二张图给出了一个散点图(人为第二个分类变量创建数字),

为了使其更加复杂,我还想显示一条带有所有散点图的平均值线。与在R中使用ggplot2在具有均值段的分类散点图中执行的操作类似。如何添加呢?

感谢你的帮助!

time = c(rep('t1',12),rep('t2',12))
Origin =  c(rep('I1B',4),rep('I1C',4),rep('J4A',4),rep('I1B',4),rep('I1C',4),rep('J4A',4))
LB_FR = runif(24)

df = data.frame(time,Origin,LB_FR)

#does not work with geom_point
ggplot(df, aes(x = time, y = LB_FR, fill = Origin)) + geom_boxplot() + ggtitle('LB_FR')

#create df_2 with numbers instead of categories for Origin
df_2 = df
for (r in 1:nrow(df)){
  if (df$Origin[r] == 'I1B') df_2[r,'OriginNr'] = 1
  if (df$Origin[r] == 'I1C') df_2[r,'OriginNr'] = 2
  if (df$Origin[r] == 'J4A') df_2[r,'OriginNr'] = 3
}

# indices for time
t1 = …
Run Code Online (Sandbox Code Playgroud)

plot r scatter-plot categorical-data

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

r ×2

categorical-data ×1

numeric ×1

plot ×1

scale ×1

scatter-plot ×1