Sto*_*aft 1 r subset dataframe
我有一个数据框,我想用通过在旧名称前面添加标识符而创建的新名称替换列的子集。例如,要在第 3:7 列前面加上字符串“TEST”,我尝试了以下操作。
我在这里缺少什么?
# Make a test df
df <- data.frame(replicate(10,sample(0:1,100,rep=TRUE)))
#Subsetting works fine
colnames(df[,3:7])
#sub works fine
sub("^", "TEST.", colnames(df[,3:7]))
#replacing the subset of column names with sub does not
colnames(df[,3:7]) <- sub("^", "TEST.", colnames(df[,3:7]))
colnames(df)
#Also doesn't work
colnames(df[,3:7]) <- paste("TEST.", colnames(df[,3:7]), sep ="")
colnames(df)
Run Code Online (Sandbox Code Playgroud)
列名应该是一个向量,索引位于括号之外:
colnames(df)[3:7] <- sub("^", "TEST.", colnames(df)[3:7])
Run Code Online (Sandbox Code Playgroud)
您还可以:
colnames(df)[3:7] <- paste0("TEST.", colnames(df)[3:7])
Run Code Online (Sandbox Code Playgroud)