在我的R程序中找不到错误

在我的R程序中找不到错误,r,sorting,R,Sorting,我正在通过以下方式从csv文件中读取数据,该文件有3列(医院名称-字符、州字符、死亡率数字): datafile为什么要拆分data.frame 像这样的东西会有用吗 df <- data.frame('hospital' = LETTERS[1:6], 'state' = rep(c('state1', 'state2', 'state3'),2), 'mr' = c(1:6)) df hospital state

我正在通过以下方式从csv文件中读取数据,该文件有3列(医院名称-字符、州字符、死亡率数字):


datafile为什么要拆分data.frame

像这样的东西会有用吗

df <- data.frame('hospital' = LETTERS[1:6],
                 'state' = rep(c('state1', 'state2', 'state3'),2),
                 'mr' = c(1:6))
df
  hospital  state mr
1        A state1  1
2        B state2  2
3        C state3  3
4        D state1  4
5        E state2  5
6        F state3  6

df2 <- df[with(df, order(-mr, state)), ]

df2[!duplicated(df2$state), ]
  hospital  state mr
6        F state3  6
5        E state2  5
4        D state1  4

df-Hi。这将是很好的,有一些可复制的例子,你的数据。检查。除此之外,为您的问题提供一个更好的标题可能会提高您获得更好答案的机会,使您在搜索主题时更容易找到答案。感谢建议的更改,但如果有人能详细说明我的代码中的错误,我将不胜感激。此外,其中一列的名称是“医院30天心衰死亡率”。我如何用$符号访问该列?@bipvan。如果需要,您可以使用df$“var name”或df[,1]来调用它。我要说的是避免使用这样的名字。改为使用小写短名称,并在必要时对R内部或外部的输出进行更改。您将看到,在导入对象时,R将尝试消除或替换变量名称上的任何空格。
## split data based on state name
data_split <- split(datafile,datafile$State) 
for (i in 1:length(data_split)){
  ## remove all rows with NA
  rate[[i]] <- data_split[[i]][complete.cases(data_split[[i]][ ,3]), ]  
  ##sort by mortality and remove
  ## conflict by hospital name
  rate[[i]] <- rate[[i]][order(rate[[i]][, 3],rate[[i]][ ,1]), ]  

}
df <- data.frame('hospital' = LETTERS[1:6],
                 'state' = rep(c('state1', 'state2', 'state3'),2),
                 'mr' = c(1:6))
df
  hospital  state mr
1        A state1  1
2        B state2  2
3        C state3  3
4        D state1  4
5        E state2  5
6        F state3  6

df2 <- df[with(df, order(-mr, state)), ]

df2[!duplicated(df2$state), ]
  hospital  state mr
6        F state3  6
5        E state2  5
4        D state1  4
ds <- split(df, df$state) 
rate <- list()
for (i in 1:length(ds)){
  ## remove all rows with NA
  rate[[i]] <- ds[[i]][complete.cases(ds[[i]][ ,3]), ]  
  ##sort by mortality and remove
  ## conflict by hospital name
  rate[[i]] <- rate[[i]][order(- rate[[i]][, 3], rate[[i]][ ,1]), ]  

}
rate

 [[1]]
  hospital  state mr
4        D state1  4
1        A state1  1

[[2]]
  hospital  state mr
5        E state2  5
2        B state2  2

[[3]]
  hospital  state mr
6        F state3  6
3        C state3  3