Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于R中不同写入名称的数据聚合_R_Dataframe_Aggregate - Fatal编程技术网

基于R中不同写入名称的数据聚合

基于R中不同写入名称的数据聚合,r,dataframe,aggregate,R,Dataframe,Aggregate,在R中,我有数据 Name number Peter 14 peter 2 hans 11 ... 我的问题是如何找到带有大号字母的名字,并将它们组合成小写字母。例如,我想组合peter和peter以及数字的和,在本例中为14+2=16 假设我有500多个名字,其中一些以小写字母开头,一些以大写字母开头——我一般应该如何解决这个问题 谢谢 好吧,你可以忽略区分大小写。把所有的名字改成大写或小写,然后数一数数量。 例: 图珀(“彼得”) 图珀(“彼得”) 试试: names_

在R中,我有数据

Name   number
Peter   14
peter   2
hans    11
...
我的问题是如何找到带有大号字母的名字,并将它们组合成小写字母。例如,我想组合
peter
peter
以及
数字的和,在本例中为14+2=16

假设我有500多个名字,其中一些以小写字母开头,一些以大写字母开头——我一般应该如何解决这个问题


谢谢

好吧,你可以忽略区分大小写。把所有的名字改成大写或小写,然后数一数数量。 例:

  • 图珀(“彼得”)
  • 图珀(“彼得”)
试试:

names_nums <- read.table(text="Name   number
Peter   14
peter   2
hans    11", header=T)

sum(names_nums[tolower(names_nums$Name) == "peter",]$number)

谢谢

您可以将
aggregate()
tolower()
结合使用。因此,所有名称仅转换为小字符。然后使用
sum
应用聚合。这可以存储到一个新对象,比如说
dfAgg

df <- data.frame(name = c("Peter", "peter", "Hans", "hans"), number = c(14,2,11,3))

dfAgg <- aggregate(number ~ tolower(name), data = df, sum)
dfAgg
# tolower(name) number
#          hans     14
#         peter     16
df
df <- data.frame(name = c("Peter", "peter", "Hans", "hans"), number = c(14,2,11,3))

dfAgg <- aggregate(number ~ tolower(name), data = df, sum)
dfAgg
# tolower(name) number
#          hans     14
#         peter     16