在R中,我在数据帧中有一堆数据,如:
state | zip | value
______|_______|______
CA | 94555 | 18
CA | 94556 | 5
OH | 12345 | 22
OH | 12346 | 10
Run Code Online (Sandbox Code Playgroud)
等等.
我希望在每一行中添加一列,列出该状态的平均"值".
我可以通过" (aggregate(data$value, list(State = data$state), mean))" 获得手段的数据框.这给了我一个50行的数据帧,每个状态一个.但是我需要回到原始数据框并将状态的平均值放在属于该状态的行中.
我该怎么做呢?
这是我的数据:
v x
0:0 96
0:0 119
0:0 108
1:0 73
1:0 65
2:0 83
2:0 73
2:0 23
Run Code Online (Sandbox Code Playgroud)
如何通过v的组得到平均值,即所有0:0,1:0等的x的平均值.
我失败的尝试:
df = read.csv(input.file.path, header=TRUE)
df$v <- as.factor(df$v)
ave(df$x, df$v)
Run Code Online (Sandbox Code Playgroud) 我有一个csv,看起来像这样:
Date,Sentiment
2014-01-03,0.4
2014-01-04,-0.03
2014-01-09,0.0
2014-01-10,0.07
2014-01-12,0.0
2014-02-24,0.0
2014-02-25,0.0
2014-02-25,0.0
2014-02-26,0.0
2014-02-28,0.0
2014-03-01,0.1
2014-03-02,-0.5
2014-03-03,0.0
2014-03-08,-0.06
2014-03-11,-0.13
2014-03-22,0.0
2014-03-23,0.33
2014-03-23,0.3
2014-03-25,-0.14
2014-03-28,-0.25
etc
Run Code Online (Sandbox Code Playgroud)
我的目标是按月汇总日期并计算平均月份。日期可能不以1或1月开始。问题是我有很多数据,这意味着我还有很多年。为此,我想找到最快的日期(月份),然后从那里开始计算月份及其平均值。例如:
Month count, average
1, 0.4 (<= the earliest month)
2, -0.3
3, 0.0
...
12, 0.1
13, -0.4 (<= new year but counting of month is continuing)
14, 0.3
Run Code Online (Sandbox Code Playgroud)
我正在使用Pandas打开CSV
data = pd.read_csv("pks.csv", sep=",")
Run Code Online (Sandbox Code Playgroud)
所以在data['Date']我有约会,在data['Sentiment']我有价值观。知道怎么做吗?
我有数据框重新下面的数据框
Date Expenditure Indicator
29-01-2011 5455 212
25-01-2012 5452 111
11-02-2011 365 5
Run Code Online (Sandbox Code Playgroud)
我目前有兴趣总结支出值,我正在尝试使用下面的功能
dta.sum <- aggregate(x = dta, FUN = sum,
by = list(Group.date = dta$date))
Run Code Online (Sandbox Code Playgroud)
但R返回以下错误,Summary.Date中的错误(c(15614L,15614L,15614L,15614L,15614L,15614L,:未为"日期"对象定义的总和.日期列以前使用as定义为日期.日期功能.类似的功能,但平均工作正常.
dta.sum <- aggregate(x = dta, FUN = mean
by = list(Group.date = dta$date))
Run Code Online (Sandbox Code Playgroud)
我想将日期格式化为日期.
我想知道如何合并数据框中的重复行,然后将重复的值合并到另一列中.
以下是现有数据框和两个可作为解决方案可接受的数据框的示例
df1 <- data.frame(col1 = c("test1", "test2", "test2", "test3"), col2 = c(1, 2, 3, 4))
df.ideal <- data.frame(col1 = c("test1", "test2", "test3"), col2 = c(1, "2, 3", 4))
df.ideal2 <- data.frame(col1 = c("test1", "test2", "test3"),
col2 = c(1, 2, 4),
col3 = c(NA, 3, NA))
Run Code Online (Sandbox Code Playgroud)
在第一个理想的数据框中,复制的行将折叠,并且该列将添加两个数字.我已经查看了有关堆栈溢出的其他类似问题,但它们都处理了组合行.我需要删除重复的行,因为我有另一个数据集我正在合并它需要一定数量的行.所以,我想保留所有的价值观.谢谢你的帮助!
我试图找到一个纯SQL解决方案,以解决以下问题:
如果我卖油漆和油漆刷,并记录出售的颜色如下:
select OrderNumber, Product, Product_Type, Qty from Sales
+-------------+------------+--------------+-----+
| OrderNumber | Product | Product_Type | Qty |
+-------------+------------+--------------+-----+
| 0001 | Red | Paint | 1 |
| 0001 | Blue | Paint | 2 |
| 0001 | Green | Paint | 1 |
| 0001 | Paintbrush | Brush | 1 |
| 0002 | Green | Paint | 1 |
| 0002 | Paintbrush | Brush | 1 |
| 0003 | Blue | Paint …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,我想创建一个变量z,计算"y变量"的副本,如果y有1,1 set z = 2,2,如果y有3,3,3,则设置z = 3,3 ,3.
x = c("a","b","c","d","e","a","b","c","d","e","a","b","c")
y = c(1,1,2,2,2,3,3,4,4,4,5,5,5)
data <- data.frame(x,y)
data
x y z
1 a 1 2
2 b 1 2
3 c 2 3
4 d 2 3
5 e 2 3
6 a 3 2
7 b 3 2
8 c 4 3
9 d 4 3
10 e 4 3
11 a 5 3
12 b 5 3
13 c 5 3
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我在Pandas中有一个数据框,其中包含一组产品评论,适用于来自各个评论网站的略有不同的产品.每次审核都与产品相关,并带有数字分数.评论还有一个文本字段,其中包含每个评论的文本(相当长的字段),以及从中获取的源站点的名称.例如
product score source text
------------------------------------------
K3 4.0 site1 long-text
P2 2.0 site7 text
K3 3.0 site2 paragraph
i7 1.0 site4 review-text
P2 5.0 site2 more-text
K3 4.0 site5 texts-on-text
Run Code Online (Sandbox Code Playgroud)
我想在一个新表中将每个产品组合在一起,以便我可以分析每个产品的评估方式.我最终会进行文本分析(POS标记等),以了解每种产品的评估方式.
我想首先创建一个新的数据框,按"产品"分组.我想计算每个产品在"计数"列中的评论数量.将有一列计算分组时"得分"的平均值.还将有一个列合并每个产品的文本字段,以便可以作为整体而不是单独分析审阅文本.例如
product mean_score count text_combined
---------------------------------------------------
K3 3.66 3 long-text, paragraph, texts-on-text
P2 3.5 2 text, more-text
i7 1.0 1 review-text
Run Code Online (Sandbox Code Playgroud)
此特定分析中不需要"源"列,但我已将其包含在内,以显示数据框中还有其他列.
从中我可以更轻松地分解每个产品的文本,而不是单独的评论.
在此先感谢Stack!
我知道有关此主题的问题很多,如果这是重复的问题,我深表歉意。我正在尝试将数据集中的多列折叠为一列:
假设这是我正在使用的数据集的结构,
df <- data.frame(
cbind(
variable_1 = c('Var1', NA, NA,'Var1'),
variable_2 = c('Var2', 'No', NA, NA),
variable_3 = c(NA, NA, 'Var3', NA),
variable_4 = c(NA, 'Var4', NA, NA),
variable_5 = c(NA, 'No', 'Var5', NA),
variable_6 = c(NA, NA, 'Var6', NA)
))
variable_1 variable_2 variable_3 variable_4 variable_5 variable_6
Var1 Var2 NA NA NA NA
NA No NA Var4 No NA
NA NA Var3 NA Var5 Var6
Var1 NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)
我所期待是一列variable_7这样的
variable_1 variable_2 variable_3 variable_4 variable_5 …Run Code Online (Sandbox Code Playgroud) 我试图在函数中使用dplyr创建一个用户定义的函数,我可以传递多个参数来使用dplyr汇总数据,然后用ggplot绘制它.
这是一些示例数据以及我正在尝试使用dplyr然后绘制的内容
df <-data.frame(Year = c("2006", "2006", "2006", "2007", "2007", "2007", "2008", "2009", "2010", "2010", "2009", "2009"), JudicialOrientation = c("Defense", "Plaintiff", "Plaintiff", "Neutral", "Defense", "Plaintiff", "Defense", "Plaintiff", "Neutral", "Neutral", "Plaintiff","Defense"), Loss = c(100000, 100, 2500, 100000, 25000, 0, 7500, 5200, 900, 100, 0, 50))
df1 <- df %>%
group_by(Year, JudicialOrientation) %>%
summarise(MeanLoss =mean(Loss))
ggplot(df1, aes(x = JudicialOrientation, y = MeanLoss, color = Year, group =Year)) +
geom_line() +
geom_point()
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试将其复制到用户函数中,以便我可以传递不同的变量来获得类似的结果.
这是我到目前为止的尝试:
ConsistencyPlot <- function(df,var1,timevar,lossvar){
df1 <- df %>%
group_by_(df[timevar], df[var1]) …Run Code Online (Sandbox Code Playgroud)