首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中容易地将值插入数据

在R中容易地将值插入数据
EN

Stack Overflow用户
提问于 2021-12-17 06:46:08
回答 3查看 147关注 0票数 1

考虑以下data.frame:

代码语言:javascript
复制
df <- data.frame(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(0,0,0))

我想很容易地将一个值放入dataframe中。假设我想要“农业”的数字1。当然,在这种情况下,我可以很容易地通过:

代码语言:javascript
复制
df <- data.frame(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(1,0,0))

但我有一个巨大的数据,所以这不是那么容易做。相反,我是否有可能写:

代码语言:javascript
复制
change <- c("Agriculture", 1)

如果它是macthing,那么它将更新df。但我该怎么做呢?我应该可以同时改变多个单元格(例如,“农业”和“渔业”)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-17 06:51:08

dplyr解决方案:

您可以写下要更新的行业列表,然后在%in%函数中使用mutate操作符:

代码语言:javascript
复制
library(dplyr)

df <- data.frame(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(0,0,0))

list_of_industries <- c("Agriculture","Fishery")

df <- df %>% 
  mutate(Value = ifelse(Industry %in% list_of_industries,
                        1,
                        0))

输出:

代码语言:javascript
复制
     Industry Value
1 Agriculture     1
2     Fishery     1
3    Industry     0
票数 1
EN

Stack Overflow用户

发布于 2021-12-17 06:51:11

你可以试试

代码语言:javascript
复制
df$Value[df$Industry == "Agriculture"] <- 1

     Industry Value
1 Agriculture     1
2     Fishery     0
3    Industry     0

代码语言:javascript
复制
df$Value[df$Industry %in% c("Agriculture", "Fishery")] <- 1
     Industry Value
1 Agriculture     1
2     Fishery     1
3    Industry     0
票数 1
EN

Stack Overflow用户

发布于 2021-12-17 09:23:02

使用data.table方法进行合并和内部更新

代码语言:javascript
复制
library(data.table)

# set df as dt
dt <- data.table(df)

# update table
updt <- fread(text="
  Industry,New_Value
  Agriculture,1
  Fishery,2
")

# temporary merge on Industry column to fetch new value
# and inplace update dt
dt[
  updt, on="Industry", # merging
  Value := New_Value # inplace update
]

得到

代码语言:javascript
复制
      Industry Value
1: Agriculture     1
2:     Fishery     2
3:    Industry     0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70389363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档