如何在R中将选定的行转换为列?

如何在R中将选定的行转换为列?,r,dataframe,data-manipulation,data-cleaning,R,Dataframe,Data Manipulation,Data Cleaning,我一直在使用一个数据集,该数据集要求我拆分某些选定的行并将它们转换为列。我通常用于这类事情的扩展函数并没有完全按照我想要的方式工作。这是我得到的最接近可复制的例子: df<-data.frame(person=c("Matt","Tom","Shane","Shane"),salary=c(100,200,500,400)) > df person salary 1 Matt 100 2 Tom 200 3 Shane 500 4 Shane

我一直在使用一个数据集,该数据集要求我拆分某些选定的行并将它们转换为列。我通常用于这类事情的扩展函数并没有完全按照我想要的方式工作。这是我得到的最接近可复制的例子:

df<-data.frame(person=c("Matt","Tom","Shane","Shane"),salary=c(100,200,500,400))
> df
  person salary
1   Matt    100
2    Tom    200
3  Shane    500
4  Shane    400

我该怎么做呢。先谢谢你

我不确定您为什么要这样做,但使用dplyr:

df2<-filter(df,person!='Shane')
df2$Shane<-filter(df,person=='Shane')$salary
> df2
  person salary Shane
1   Matt    100   500
2    Tom    200   400

df2Hi@august我正在寻找类似的东西,这是我找到的最好的答案。谢谢。如果长度不相等,如何执行类似的操作,例如,您有17行,但有一行有5个值来填充上面的“Shane”列?
df2<-filter(df,person!='Shane')
df2$Shane<-filter(df,person=='Shane')$salary
> df2
  person salary Shane
1   Matt    100   500
2    Tom    200   400