【发布时间】:2016-05-23 11:20:22
【问题描述】:
我有一个包含数字和非数字列的数据框,比如说
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
但这给了我警告In fixCol$FR = TRUE : Coercing LHS to a list,这使得我无法对我的原始数据框进行子集化以仅获得 fixCol
df[,fixCol]
给:Error in .subset(x, j) : invalid subscript type 'list'
最后,我的目标是使用类似这样的方法来缩放我的数据框中的所有数字列,除了这个指定的列之外
scaleCol = !fixCol
df_scaled = cbind(df[,fixCol], sapply(df[,scaleCol],scale))
我怎样才能最好地做到这一点?
【问题讨论】: