标签: data-wrangling

改变 ifelse 以替换 r 中的值

我有一个如下所示的数据框:

Word     Value1   Value2

Apple    True     True
Chair    True     False
nonWord  False    False
Hat      False    True
...      ...
Run Code Online (Sandbox Code Playgroud)

我正在尝试将 nonWords 的所有值更改为NAs。

data %>%
  mutate(Value1 = ifelse(Word == "nonWord", NA, Value1)) %>%
  mutate(Value2 = ifelse(Word == "nonWord", NA, Value2))
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用,因为我的价值观没有被NA's 取代。有谁知道我做错了什么?

期望的输出:

Word     Value1   Value2

Apple    True     True
Chair    True     False
nonWord  NA       NA
Hat      False    True
...      ...
Run Code Online (Sandbox Code Playgroud)

r data-wrangling

0
推荐指数
1
解决办法
2356
查看次数

我如何计算,在一个会话中总共有多少个项目?

我真的尽我最大的努力通过 stackoverflow 搜索解决方案,但不幸的是我找不到合适的问题。因此,我必须自己提出一个问题。

我正在处理一个包含 sessionID 和主题的数据集。想象它看起来像这样:

sessionID <- c(1, 2, 2, 3, 4, 4, 5, 6, 6, 6)
topic <- c("rock", "house", "country", "rock", "r'n'b", "pop", "classic", "house", "rock", "country")
transactions <- cbind(sessionID, topic)
transactions
Run Code Online (Sandbox Code Playgroud)

现在,我想知道某个主题的多少项目一起出现在一个会话中。最后,我想获得一个矩阵,表示特定主题与其他主题进行会话的频率。最终结果应如下所示:

topics <- sort(unique(topic))
topicPairs <- matrix(NA, nrow = length(topics), ncol = length(topics))
colnames(topicPairs) <- topics
rownames(topicPairs) <- topics
topicPairs["house", "country"] <- 2
topicPairs["country", "house"] <- 2
topicPairs["r'n'b", "pop"] <- 1
topicPairs["pop", "r'n'b"] <- 1
topicPairs["rock", "house"] <- 1
topicPairs["house", "rock"] <- 1
topicPairs["rock", "country"] …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr tidyverse data-wrangling

0
推荐指数
1
解决办法
149
查看次数

将行值移动到另一个现有列

我有一个凌乱的数据集,如下所示

  Sales Credit type      Year     Status
0   NaN          GS      2000  Confirmed
1   NaN           V      2000   Assigned
2    GS        2001  Assigned        NaN
3     V        2004  Received        NaN
Run Code Online (Sandbox Code Playgroud)

我正在尝试将相应的值移动到正确的列中。所以理想情况下应该是这样的。

  Sales Credit type  Year     Status
0   NaN          GS  2000  Confirmed
1   NaN           V  2000   Assigned
2   NaN          GS  2001   Assigned
3   NaN           V  2004   Received 
Run Code Online (Sandbox Code Playgroud)

我尝试在这个平台上找到解决方案,但没有成功。我曾经df.loc放置数据集,但似乎结果并不像我预期的那样。我非常感谢您对解决此问题的支持。谢谢

*更新

它适用于@jezrael 解决方案,谢谢!但如果我们在这种情况下使用它可能吗?

   ID  Sales Credit_type      Year     Status
0  1   Aston      GS        2000   Confirmed
1  1   NaN        V        2000    Assigned
2  2    GS        2001    Assigned …
Run Code Online (Sandbox Code Playgroud)

python pandas data-wrangling

0
推荐指数
1
解决办法
114
查看次数

根据其他行中的 NA 值有条件地删除行

我有一个像这样的数据框:

 city   year value
   <chr> <dbl> <dbl>
 1 la        1    NA
 2 la        2    NA
 3 la        3    NA
 4 la        4    20
 5 la        5    25
 6 nyc       1    18
 7 nyc       2    29
 8 nyc       3    24
 9 nyc       4    17
10 nyc       5    30
Run Code Online (Sandbox Code Playgroud)

我想删除所有没有完整 5 年数据的城市。因此,在本例中,尽管存在第 4 年和第 5 年的数据,但我想删除城市 la 的所有行,从而产生以下数据框:

 city   year value
  <chr> <dbl> <dbl>
1 nyc       1    18
2 nyc       2    29
3 nyc       3    24
4 nyc       4    17
5 nyc …
Run Code Online (Sandbox Code Playgroud)

r filter dataframe dplyr data-wrangling

0
推荐指数
1
解决办法
85
查看次数

标签 统计

data-wrangling ×4

r ×3

dplyr ×2

dataframe ×1

filter ×1

pandas ×1

python ×1

tidyr ×1

tidyverse ×1