小编use*_*270的帖子

根据规则将数据框中的值替换为其他值

我是R的初学者,并没有找到解决以下问题的方法.任何帮助将非常感激!

我有一个data.frame,并希望用定义的其他值替换列的某些值.

data.frame

date<-c("19921231","19931231","19941231","19941231","19931231","19941231")
variable<-c("a","a","a","b","b","b")
value<-c(1:6)
dataframe <- data.frame(date,variable,value)
Run Code Online (Sandbox Code Playgroud)

试图解决问题

yearend<-c("19921231","19931231","19941231")
year<-c("1992","1993","1994")
map = setNames(yearend,year)
dataframe[] = map[dataframe]
Run Code Online (Sandbox Code Playgroud)

错误信息

Error in map[dataframe] : invalid subscript type 'list'
Run Code Online (Sandbox Code Playgroud)

问题显然是,它不是一个矩阵.解决这个问题最有效的方法是什么?如果我想替换"真实"字符,例如"BGSFDS"和"BASF stock",它也应该有用.

r map dataframe

11
推荐指数
1
解决办法
9894
查看次数

For循环:替换比数据多一行

我是R的初学者并且有问题.真的很感激任何帮助!当我在以下(简化)的情况下应用for循环时,我收到一条错误消息,说"替换有5行,数据有4"

Country <- c("Germany", "France", "Italy", "Spain")
Unemploy <- c(2, 3, 4, 10)
Growth <- c(2, 7, 6, 9)
data <- data.frame(Country, Unemploy, Growth)

for (i in data$Country) {
     if (identical(data$Country[i], "France")) {
          data$Growth[i] <- "5"
     } else {
          data$Growth[i] <- "2"
     }
}
Run Code Online (Sandbox Code Playgroud)

发出以下消息:

Error in `$<-.data.frame`(`*tmp*`, "Growth", value = c("2", "2", "2",  : 
replacement has 5 rows, data has 4
Run Code Online (Sandbox Code Playgroud)

for-loop r

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

标签 统计

r ×2

dataframe ×1

for-loop ×1

map ×1