侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

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

2023-05-03 星期三 / 0 评论 / 0 点赞 / 82 阅读 / 1356 字

我有一个包含数字和非数字列的数据框,比方说 df <- data.frame(v1=1:20,v2=1:20,v3=1:20,v4=letters[1:20],v5=letters[1:20

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

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

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

fixCol <- !sapply(df,is.numeric)

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

fixCol$v2 = TRUE

但是这给了我警告在fixCol $FR = TRUE:将LHS强制转换为一个列表,这使得我无法将原始数据框子集化为仅获得fixCol

df[,fixCol]

给出:.subset(x,j)中的错误:无效的下标类型’list’

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

scaleCol = !fixColdf_scaled = cbind(df[,fixCol],sapply(df[,scaleCol],scale))

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

.

解决方法

. 我们可以使用OR条件(|)来获取逻辑索引,然后对’df’的列进行子集化.

df1 <- df[!sapply(df,is.numeric)|names(df)=='v2']head(df1,2)#  v2 v4 v5#1  1  a  a#2  2  b  b
. . .. ...

广告 广告

评论区