相关疑难解决方法(0)

R - 使用匹配运算符时保留顺序(%in%)

我正在使用匹配运算符从单独的数据框中获取矩阵中出现的值.但是,生成的矩阵的值按照它们出现在数据帧中的顺序而不是原始矩阵中的值.有没有办法使用匹配运算符保留原始矩阵的顺序?

这是一个简单的例子:

vec=c("b","a","c"); vec

df=data.frame(row.names=letters[1:5],values=1:5); df

df[rownames(df) %in% vec,1]
Run Code Online (Sandbox Code Playgroud)

这会产生数据框中出现> [1] 1 2 3的顺序"a" "b" "c".但是,我想生成>[1] 2 1 3哪个是它们出现在原始向量中的顺序.

谢谢!

r operators

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

R:重命名数据框中的变量子集

我正在重命名数据框中的大多数变量,我的方法并没有给我留下太深刻的印象.

因此,SO上的任何人是否有更智能或更快的方式,而下面仅使用基数?

    data(mtcars)
  # head(mtcars)


  temp.mtcars <- mtcars
  names(temp.mtcars) <- c((x <- c("mpg", "cyl", "disp")), 
                           gsub('^', "baR.", setdiff(names (mtcars),x)))
  str(temp.mtcars)
  'data.frame': 32 obs. of  11 variables:
   $ mpg     : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
   $ cyl     : num  6 6 4 6 8 6 8 4 4 6 ...
   $ disp    : num  160 160 108 258 360 ...
   $ baR.hp  : num  110 110 93 110 175 105 245 62 95 123 …
Run Code Online (Sandbox Code Playgroud)

r rename base gsub

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

标签 统计

r ×2

base ×1

gsub ×1

operators ×1

rename ×1